2010-08-10 2 views
1

je dois avoir un SortedMap avec ces champs pour chaque touche [SrcAddr, dstaddr, srcPort, dstPort, protocole] (ce qui est correspondant à un flux)SortedMap avec plusieurs champs pour les clés et les valeurs

alors cette clé contient une liste de valeurs contenant chacune des champs. tels que: packetLenghth, timeArrival pour le paquet 1 packetLength, timeArrival pour le paquet 2 . . . et ainsi de suite. En d'autres termes, chaque paquet est examiné, qu'il appartienne à un flux ou non, sur la base des 5 champs mentionnés ci-dessus. puis pour ce paquet particulier certaines informations seront extraites. pour le paquet suivant, s'il appartient à ce flux, un nouveau flux ne sera pas ajouté mais des informations sur ce paquet seront ajoutées. Je pensais à devoir séparer les classes myKeys et myValues ​​avec les champs désirés. myKeys doit implémenter compareTo, hashCode, equal.

mais je ne sais pas si je suis juste. quelqu'un peut-il m'aider avec s'il vous plaît?

Répondre

2

Votre solution fonctionnera. Avoir des classes séparées pour vos clés et vos valeurs vous permettra d'utiliser une carte triée qui les mappe à l'autre tant que la classe de clé implémente Comparable, ce qui ressemble à votre plan.

+2

... et c'est toujours une bonne habitude d'implémenter equals et hashCode (tous les deux, et pas seulement un) pour les classes, car il y aura des bogues étranges plus tard. Habituellement, il faudra stocker les objets dans une collection, au moins lorsque le logiciel se développe. –

+0

pouvez-vous me dire si j'ai besoin de treemap pour cela ou non? –

+0

@Red Lion: Vous pouvez utiliser un TreeMap ou un HashMap, selon votre choix. –

Questions connexes