Map集合

HashMap、TreeMap 遍历集合:
方式一:hashMap.keySet()
方式二:hashMap.entrySet() ,可以在遍历的过程中,修改集合内容
方式三:foreach // for(Map.Entry<String,String> map:hashMap.entrySet())
HashMap<String,String > hashMap=new HashMap<>();
hashMap.put("Zhangsan","14");
hashMap.put("Wangwu","12");
hashMap.put("Lisi","6");
//------------遍历方式一-------------------
Set<String> set=hashMap.keySet();
Iterator<String> iterator=set.iterator();
while (iterator.hasNext()){
String key=iterator.next();
Log.d(TAG,"key="+key+" ,value="+hashMap.get(key));
}
//------------遍历方式二-------------------
Set<Map.Entry<String,String>> set2= hashMap.entrySet();
Iterator<Map.Entry<String,String>> iterator1= set2.iterator();
while (iterator1.hasNext()){
Map.Entry<String,String> map=iterator1.next();
Log.d(TAG,"key1="+map.getKey()+" ,value1="+map.getValue());
}
//------------------------------------
//------------遍历方式三-------------------
for(Map.Entry<String,String> map:hashMap.entrySet()){
//Log.d(TAG,"key1="+map.getKey()+" ,value1="+map.getValue());
}
//------------------------------------
结果:
key1=Wangwu ,value1=12
key1=Lisi ,value1=6
key1=Zhangsan ,value1=14
TreeMap<String,String > treeMap=new TreeMap<>();
treeMap.put("Zhangsan","14");
treeMap.put("Wangwu","12");
treeMap.put("Lisi","90");
//------------遍历方式一-------------------
Set<String> set=treeMap.keySet();
Iterator<String> iterator=set.iterator();
while (iterator.hasNext()){
String key=iterator.next();
Log.d(TAG,"key="+key+" ,value="+treeMap.get(key));
}
//------------遍历方式二-------------------
Set<Map.Entry<String,String>> set2= treeMap.entrySet();
Iterator<Map.Entry<String,String>> iterator1= set2.iterator();
while (iterator1.hasNext()){
Map.Entry<String,String> map=iterator1.next();
Log.d(TAG,"key1="+map.getKey()+" ,value1="+map.getValue());
}
//------------------------------------
默认按照key排序:
key1=Lisi ,value1=90
key1=Wangwu ,value1=12
key1=Zhangsan ,value1=14
HashMap、TreeMap 遍历效率比较:
|
100000条数据 | |||
|
集合 |
特点 |
插入 |
查询 |
|
HashMap
|
底层数据结构:哈希值 是否同步:不同步 |
337ms |
keySet()遍历:51 ms entrySet()遍历:37 ms Foreach遍历: 38 ms |
|
TreeMap
|
底层数据结构:二叉树 是否同步:不同步 |
446ms |
keySet()遍历:26 ms entrySet()遍历:26 ms 1000000条数据: keySet()遍历:272 ms entrySet()遍历: 268 ms
|
|
100000条数据 | |||
|
集合 |
特点 |
插入 |
查询 |
|
ArrayList |
底层数据结构:数组线程 是否同步:不同步 |
38ms |
迭代器遍历:6ms For循环遍历:1ms Foreach遍历:6ms |
|
LinkedList |
底层数据结构:链表线程 是否同步:不同步 |
54ms |
迭代器遍历:13ms |
|
HashSet |
底层数据结构:哈希表线程 是否同步:不同步 |
121ms |
迭代器遍历:31ms |
|
TreeSet |
底层数据结构:二叉树线程 是否同步:不同步 |
257 ms |
迭代器遍历:17ms |

博客主要围绕Map集合展开,重点介绍了HashMap和TreeMap的遍历集合方式,包括使用hashMap.keySet()、hashMap.entrySet()(可在遍历中修改集合内容)以及foreach循环,还提及了对这两种集合遍历效率的比较。

被折叠的 条评论
为什么被折叠?



