一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢?
这里有2个,treeMap和linkedHashMap,但是,要达到我们的要求:按添加顺序保存元素的,就只有LinkedHashMap。
下面看运行的代码。
- package com.lxk.collectionTest;
-
- import com.google.common.collect.Maps;
-
- import java.util.Map;
-
-
-
-
-
-
- public class OrderedMapTest {
- public static void main(String[] args) {
- Map<String, Integer> hashMap = Maps.newHashMap();
- Map<String, Integer> treeMap = Maps.newTreeMap();
- Map<String, Integer> linkedHashMap = Maps.newLinkedHashMap();
- System.out.println("--------------test hashMap");
- testMap(hashMap);
- System.out.println("--------------test treeMap");
- testMap(treeMap);
- System.out.println("--------------test linkedHashMap");
- testMap(linkedHashMap);
- }
-
- private static void testMap(Map<String, Integer> map) {
- map.put("asd", 1);
- map.put("2das", 2);
- map.put("3das", 3);
- map.put("4das", 4);
- for (Map.Entry<String, Integer> entry : map.entrySet()) {
- System.out.println(entry.getKey() + ":" + entry.getValue());
- }
- }
-
- }
然后是运行结果的图。
可以看到,要是单单的说有序,那么就hashmap是无序的,但是,要说到添加顺序,那就只有linkedhashmap啦。