Java中的map集合顺序如何与添加顺序一样
2018-02-01 09:44
495 查看
一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢?
这里有2个,treeMap和linkedHashMap,但是,要达到我们的要求:按添加顺序保存元素的,就只有LinkedHashMap。
下面看运行的代码。
[java] view plain copy print?package com.lxk.collectionTest;
import com.google.common.collect.Maps;
import java.util.Map;
/**
* 测试Map是否有序的区别
* <p>
* Created by lxk on 2017/5/24
*/
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啦。
我写完文章,给自己点个赞,不过分吧,
不过分,那我可就点啦啊。
我先点为敬,你们随意。大家随意。不要客气。。。
这里有2个,treeMap和linkedHashMap,但是,要达到我们的要求:按添加顺序保存元素的,就只有LinkedHashMap。
下面看运行的代码。
[java] view plain copy print?package com.lxk.collectionTest;
import com.google.common.collect.Maps;
import java.util.Map;
/**
* 测试Map是否有序的区别
* <p>
* Created by lxk on 2017/5/24
*/
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());
}
}
}
package com.lxk.collectionTest; import com.google.common.collect.Maps; import java.util.Map; /** * 测试Map是否有序的区别 * <p> * Created by lxk on 2017/5/24 */ 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啦。
我写完文章,给自己点个赞,不过分吧,
不过分,那我可就点啦啊。
我先点为敬,你们随意。大家随意。不要客气。。。
相关文章推荐
- Java中的map集合顺序如何与添加顺序一样
- JAVA中的map集合顺序如何与添加顺序一样
- JAVA中的map集合顺序如何与添加顺序一样
- 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
- Java中如何取出Map集合中的元素
- Java 集合之List 集合的添加方法顺序分析以及add和addAll区别
- 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
- java如何对map进行排序详解(map集合的使用)
- java如何对map进行排序详解(map集合的使用)
- java中如何按输入的顺序遍历一个map和set
- Java学习疑点(6)--Set集合添加元素时底层如何实现无重复元素?
- java 中如何声明线程安全的集合 set, map 和list【转】
- java 中List包含List,如何添加多个list,Map中包含多个list,如何添加?
- 【慕课笔记】第五章 JAVA中的集合框架(中) 第2节 学生选课——使用Map添加学生
- Java 内部是如何判断Map中的两个键是否一样
- java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)
- java如何对map进行排序详解(map集合的使用)
- java如何对map进行排序详解(map集合的使用)
- 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
- 疯狂JAVA讲义---第七章(下):集合Map