无序的HashMap
我们知道HashMap是无需的,数据并不是按我们插入的顺序排序的,我们可以验证下
public class Test6 {
public static void main(String[] args) {
Map hashMap = new HashMap();
hashMap.put("name1", "value1");
hashMap.put("name2", "value2");
hashMap.put("name3", "value3");
Set set = hashMap.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Entry entry = iterator.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println("key:" + key + ", value:" + value);
}
}
}
可以看到输出结果并不是按数据插入的顺序的
key:name3, value:value3
key:name2, value:value2
key:name1, value:value1
有序的LinkedHashMap
要想实现有序的Map,我们可以用LinkedHashMap,下面验证一下,把原来代码的HashMap替换成LinkedHashMap
public class Test6 {
public static void main(String[] args) {
Map hashMap = new LinkedHashMap();
hashMap.put("name1", "value1");
hashMap.put("name2", "value2");
hashMap.put("name3", "value3");
Set set = hashMap.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Entry entry = iterator.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println("key:" + key + ", value:" + value);
}
}
}
可以看到输出结果为我们插入的顺序
key:name1, value:value1
key:name2, value:value2
key:name3, value:value3