recorrer como java collections treemap

como recorrer un treemap en java



¿Cómo iterar sobre un TreeMap? (4)

Asumiendo el tipo TreeMap <String, Integer>:

for(Map.Entry<String,Integer> entry : treeMap.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + " => " + value); }

(los tipos de clave y valor pueden ser cualquier clase de curso)

Posible duplicado:
¿Cómo iterar sobre cada entrada en un mapa?

Quiero iterar sobre un TreeMap , y para todas las claves que tienen un valor particular, quiero que se agreguen a un nuevo TreeMap . ¿Cómo puedo hacer esto?


Solo para señalar la forma genérica de iterar sobre cualquier mapa:

private <K, V> void iterateOverMap(Map<K, V> map) { for (Map.Entry<K, V> entry : map.entrySet()) { System.out.println("key ->" + entry.getKey() + ", value->" + entry.getValue()); } }


Usando Google Collections , suponiendo que K es su tipo de clave:

Maps.filterKeys(treeMap, new Predicate<K>() { @Override public boolean apply(K key) { return false; //return true here if you need the entry to be in your new map }});

Puede usar filterEntries si necesita el valor también.


//create TreeMap instance TreeMap treeMap = new TreeMap(); //add key value pairs to TreeMap treeMap.put("1","One"); treeMap.put("2","Two"); treeMap.put("3","Three"); /* get Collection of values contained in TreeMap using Collection values() */ Collection c = treeMap.values(); //obtain an Iterator for Collection Iterator itr = c.iterator(); //iterate through TreeMap values iterator while(itr.hasNext()) System.out.println(itr.next());

o:

for (Map.Entry<K,V> entry : treeMap.entrySet()) { V value = entry.getValue(); K key = entry.getKey(); }

o:

// Use iterator to display the keys and associated values System.out.println("Map Values Before: "); Set keys = map.keySet(); for (Iterator i = keys.iterator(); i.hasNext();) { Integer key = (Integer) i.next(); String value = (String) map.get(key); System.out.println(key + " = " + value); }