402 votes

Java Commandé La Carte

En Java, Est-il un objet qui agit comme une Carte pour le stockage et l'accès des paires clé/valeur, mais peut retourner une liste ordonnée de clés et une liste ordonnée de valeurs, tels que les clés et les listes de valeurs sont du même ordre?

De sorte que l'explication par le code, je suis à la recherche de quelque chose qui se comporte comme mon fictif OrderedMap:

OrderedMap om = new OrderedMap();
om.put(0, "Zero");
om.put(7, "Seven");

Object o = om.get(7); // o is "Seven"
List keys = om.getKeys();
List values = om.getValues();

for(int i = 0; i < keys.size(); i++)
{
    Object key = keys.get(i);
    Object value = values.get(i);
    Assert(om.get(key) == value);
}

495voto

dmeister Points 11529

Le SortedMap interface (avec la mise en œuvre TreeMap) devrait être votre ami.

L'interface a l'méthodes:

  • keySet() qui retourne un ensemble de touches dans l'ordre croissant
  • les valeurs de() qui retourne une collection de toutes les valeurs dans l'ordre croissant des clés correspondantes

Si cette interface répond exactement à vos exigences. Toutefois, les clés doivent avoir un sens de l'ordre. Sinon, vous pouvez utilisé le LinkedHashMap où l'ordre est déterminé par l'ordre d'insertion.

258voto

John Feminella Points 116878

Est-ce un objet qui agit comme une Carte pour le stockage et l'accès des paires clé/valeur, mais peut retourner une liste ordonnée de clés et une liste ordonnée de valeurs, tels que les clés et les listes de valeurs sont du même ordre?

Vous êtes à la recherche pour java.util.LinkedHashMap. Vous obtiendrez une liste de Carte.Entry<K,V> les paires, qui toujours obtenir réitéré dans le même ordre. Cet ordre est le même que l'ordre dans lequel vous placez les articles dans. Vous pouvez également utiliser le java.util.SortedMap, où les touches doivent soit avoir un ordre naturel ou spécifié par un Comparator.

6voto

bruno conde Points 28120

Je pense que le plus proche de collection, vous aurez à partir de ce cadre est la SortedMap

4voto

CJ F Points 418

Je pense que l'interface SortedMap applique à ce que vous demandez et TreeMap met en œuvre.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedMap.html http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html

4voto

Vadzim Points 4460

Depuis la version 6 de Java il y a aussi des non-bloquant thread-safe alternative à TreeMap. Voir ConcurrentSkipListMap.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X