版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hlw521hxq/article/details/82904054
Map的数据存储方式
-
map<K,V>
map基本方法使用
添加数据
-
put(k,v>
-
putall(Map map)
删除
-
remove 移除一个键的映射关系
-
clear 移除所有的映射
查找
-
containsKey(Object key):查找该key值是否存在
-
containsValue(Object value) :查找该value值是否存在
比较
-
equal和hashCode
其他功能:
-
entrySet():返回set映射关系视图
-
keySet():返回包含键的set视图
-
size():返回关系数
-
values():返回包含值的Collection视图
-
get(Object key):获取指定键的值
遍历Map对象的四种方式:
-
通过entrySet获得set对象结果集,然后遍历结果集,每个对象是一个Map,然后getKey和getValues
Set<Map.Entry<Object, Object>> setlist =map.entrySet(); for (Map.Entry<Object, Object> setone : setlist) { System.out.println(setone.getKey()+":"+setone.getValue()); }
优点:普遍,可以同时获得键和值
缺点:效率并不是很高
-
通过keySet()方法得到key的set结果集,遍历得到Key值;通过values()方法的values结果集,比例得到key值
Set<Object> keyset = map.keySet(); for (Object o : keyset) { System.out.println("key"+o); } Collection<Object> values = map.values(); for (Object value : values) { System.out.println("值是"+value); }
优点:效率高
缺点:要分别得到key与value
-
通过entrySet得到set对象结果 集,然后用遍历器iterator遍历得到结果集
Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<Object,Object> entry=iterator.next(); System.out.println(entry.getKey()+":"+ entry.getValue()); }
优点:适应老版本,遍历时调用iterator.remove()来删除entries
缺点:代码看起来冗余
-
这个不推荐,跟第二中相通,先通过keySet()获得key的结果集,遍历得到每一个key值,然后通过get(key)获得值,
Set<Object> keyset = map.keySet(); for (Object o : keyset) { System.out.println(o+":"+map.get(o)); }
优点:代码简练
缺点:效率更低
参考了博客:https://www.cnblogs.com/fqfanqi/p/6187085.html
由于笔者能力问题,有不足的地方,希望指出来!