map的输出时无序的,例如:
Map<String, String> map = new HashMap<String,String>();
map.put("11", "aa");
map.put("22", "bb");
map.put("33", "cc");
map.put("44", "dd");
map.put("55", "ee");
map.put("66", "ff");
for (Entry<String, String> entry : map.entrySet())
{
System.out.println("value : " + entry.getValue());
}
这段代码输出的value值为:
value : dd
value : ee
value : bb
value : cc
value : aa
并没有按照map添加的顺序输出,如果需要按照顺序输出,该如何处理呢?
关于这个问题,我们可以通过ListOrderedMap来解决该问题,该类为apache-collection.jar中的,可以按照添加的顺序
正确的输出map中的添加的值。
其实现如下:
Map<String, String> map = new ListOrderedMap();
map.put("11", "aa");
map.put("22", "bb");
map.put("33", "cc");
map.put("44", "dd");
map.put("55", "ee");
map.put("66", "ff");
for (Entry<String, String> entry : map.entrySet())
{
System.out.println("value : " + entry.getValue());
}
但是ListOrderedMap的不足之处在于,ListOrderedMap不支持泛型。所以在添加数据的时候一定要保证值的正确性。