2011-01-07 26 views
7

Si .NET tiene un objeto SortedDictionary ... ¿qué es esto en Java, por favor? También necesito poder recuperar un Enumeration (de elementos), en el código de Java ... así que puedo iterar sobre todas las claves.¿Cuál es el equivalente a .NET SortedDictionary, en Java?

Estoy pensando que es un TreeMap? Pero no creo que tenga un Enumeration que esté expuesto?

¿Alguna idea?

+0

Cómo iterar en un TreeMap http://stackoverflow.com/questions/1318980/how-to-iterate-over-a-treemap – Casey

Respuesta

5

TreeMap sería la elección correcta. En cuanto a la Colección de todas las claves (o valores), cualquier Map expone keySet() y values().

EDITAR (para responder a su pregunta con las etiquetas de código). Asumiendo que tiene un Map<String, Object>:

for (String key : map.keySet()) { 
    System.out.println(key); // prints the key 
    System.out.println(map.get(key)); // prints the value 
} 

También se puede utilizar en lugar de entrySet()keySet() o values() con el fin de recorrer los número-> pares de valores.

5

TreeMap es probablemente lo más parecido que va a encontrar.

Puede iterar sobre las claves llamando TreeMap.keySet(); e iterar sobre el conjunto que se devuelve:

// assume a TreeMap<String, String> called treeMap 
for(String key : treeMap.keySet()) 
{ 
    string value = treeMap[key]; 
} 

Sería el equivalente a:

// assume a SortedDictionary called sortedDictionary 
foreach(var key in sortedDictionary.Keys) 
{ 
    var value = sortedDictionary[key]; 
} 



También podría intente lo siguiente:

// assume TreeMap<String, String> called treeMap 
for (Map.Entry<String, String> entry : treeMap.entrySet()) 
{ 
    String key = entry.getKey(); 
    String value = entry.getValue(); 
} 

que es el equivalente al siguiente código .NET:

// assume SortedDictionary<string, string> called sortedDictionary 
foreach(KeyValuePair<string, string> kvp in sortedDictionary) 
{ 
    var key = kvp.Key; 
    var value = kvp.Value; 
} 
+1

treeMap [key] es un azúcar de sintaxis que no encontrará en el actual versión de java. Deberías quedarte con treeMap.get (clave) –

0

Lo que se necesita es entrySet() método de SortedMap (TreeMap).

Cuestiones relacionadas