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 |