You don't have to explicitly iterate (unless you really want to) to get the value by key: just use get()
method:
System.out.println("quattro" + ": " + queque.get("quattro"));
If you want to print all the values up to the certain one, you can do the following:
Iterator i = queque.entrySet().iterator();
while(i.hasNext()) {
Map.Entry<String, String> me = i.next();
if (me.getKey() == "quattro") break;
System.out.println(me.getKey() + ": " + me.getValue());
}
Or, a little more elegant:
for (Map.Entry<String, String> me : queque.entrySet()) {
if (me.getKey() == "quattro") break;
System.out.println(me.getKey() + ": " + me.getValue());
}
Couple more points:
If you do not need to store the elements in the order they were added, use HashMap
rather than LinkedHashMap
, since former is faster. If you want store elements sorted, use TreeMap
(but beware it is slower than the other types of Map
).
When you create instance of container in Java, you are better off using interface (like Map
, List
or Set
) in the left part of assignment and implementation (like HashMap
, ArrayList
etc.) in the right part since it gives you much more flexibility: in case you later on decide to change the implementation of the same interface (e.g. use HashMap
instead of LinkedHashMap
as I suggested above), you only need to change one line of your code where you create this container, rather than change all places where this container is used.