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 |