2010-11-30 24 views
1

la question est simple - Je dois mettre en œuvre l'interface JTree TreeModel qui exige que chaque objet a un numéro. L'arborescence représentera les données conservées dans hashmap/hashtable. Les clés de ce hashmap sont des objets client et les valeurs sont des tableaux de ressources (ou ArrayLists). La numérotation n'est donc qu'un problème au niveau supérieur. Quel serait le moyen le plus simple de numéroter des clés dans Hashmap/Hashtable?Java Hashmap/Hashtable et la numérotation

Répondre

1
public class IndexedMap<V> extends HashMap<Long, V> { 
    private AtomicLong index = new AtomicLong(); 

    public void put(V value) { 
     put(index.getAndIncrement(), value); 
    } 
} 

IndexedMap<Object> objects = new IndexedMap<Object>(); 
objects.put("foo"); 
objects.put("bar"); 
// ... 

Mais pourquoi ne pas utiliser juste un ArrayList? Il contient des objets par un index, exactement ce dont vous avez besoin.

0

Il semble que les clés de l'objet utilisateur doivent être commandées - leur "numéro" dériverait de leur place dans la commande.

Les clés sont-elles comparables? Si oui, peut-être utiliser une TreeMap. Si non, je suppose que l'ordre d'insertion est votre meilleur pari (LinkedHashMap)