我爱学Java之Map操作详解
2016-03-12 15:28
453 查看
首先列举出Map的若干简单操作。
下面重点说一下Map遍历的几种方式:
第一种:最常规的一种遍历方法,但不能直接获取到key值
第二种:利用keyset进行遍历,能够根据key值得到,并可根据key值获得value。
第三种:利用entrySet进行遍历,key值和value值可以同时获得
第四种:上述用到的Iterator都可以用foreach代替
具体的性能问题就不说了,需要根据实际需求衡量选择。
int size() 返回此映射中的键-值映射关系数 boolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true V get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。 boolean equals(Object o) 比较指定的对象与此映射是否相等(比较两个Map是否相等) V put(K key, V value) 将指定的值与此映射中的指定键关联,如果这个Map之前包含这个键的映射,那么旧的映射值将被替换并返回,反之则返回null void putAll(Map<? extends K, ? extends V> m) 从指定映射中将所有映射关系复制到此映射中 V remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除并返回该映射值,如不存在则返回null void clear() 从此映射中移除所有映射关系
下面重点说一下Map遍历的几种方式:
第一种:最常规的一种遍历方法,但不能直接获取到key值
public static void main(String[] args){ Map<String,String> map = new HashMap<String,String>(); map.put("name","sbw"); map.put("birth","haerbin"); map.put("work", "beijing"); Collection<String> c = map.values(); Iterator<String> i = c.iterator(); while(i.hasNext()){ System.out.println(i.next()); } }
第二种:利用keyset进行遍历,能够根据key值得到,并可根据key值获得value。
public static void main(String[] args){ Map<String,String> map = new HashMap<String,String>(); map.put("name","sbw"); map.put("birth","haerbin"); map.put("work", "beijing"); Set<String> set = map.keySet(); Iterator<String> i = set.iterator(); while(i.hasNext()){ System.out.println(i.next());//遍历出所有key System.out.println(map.get(i.next()));//根据key值获得value; } }
第三种:利用entrySet进行遍历,key值和value值可以同时获得
public static void main(String[] args){ Map<String,String> map = new HashMap<String,String>(); map.put("name","sbw"); map.put("birth","haerbin"); map.put("work", "beijing"); //Map.Entry是Map声明的一个内部接口,它表示Map中的一个实体(一个key-value对)。 Set<Map.Entry<String, String>> entry = map.entrySet(); Iterator<Map.Entry<String,String>> i = entry.iterator(); while(i.hasNext()){ Map.Entry<String,String> e = i.next(); System.out.println(e.getKey());//返回key值 System.out.println(e.getValue());//返回value值 } }
第四种:上述用到的Iterator都可以用foreach代替
具体的性能问题就不说了,需要根据实际需求衡量选择。
相关文章推荐
- 【Java】容器类学习之路(一)——综述
- 20145204 《Java程序设计》第2周学习总结
- java位运算
- java二分法查找两种实现方法
- 配置JDK
- jdk和eclipse位数不一致出错
- 使用Maven构建Eclipse支持的Java项目
- IOC
- 20145120 《Java程序设计》第2周学习总结
- 多字段 java对象排序
- java io 流小结
- git merge 和 git rebase 小结
- jsp的三种java脚本
- springmvc中RedirectAttributes的作用
- Google Java 编码规范
- java设计模式之前戏
- Java对象排序
- springmvc上传文件出现的一些状况
- Spring Boot -- 启动彩蛋
- springmvc请求不到页面