您现在的位置是:首页 > 文章详情

Map

日期:2018-05-20点击:383

双列集合(Map)

  • 双列集合的体系

以键值对的形式存在的,如果需要存储成对存在的数据,那么就要使用双列集合---- Map 集合。

-------------| HashMap //底层也是依赖于哈希码去实现的,存储的位置是根据键的哈希码算出来的 -------------| TreeMap //底层也是使用了红黑树数据结构去实现的,特点:是会根据键的数据进行排序存储 -------------| Hashtable(了解) 
  • Map接口的方法:
 增 put(K key, V value) 添加元素到map集合, 以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。( putAll(Map<? extends K,? extends V> m) 删 clear() remove(Object key) 判断: containsKey(Object key) containsValue(Object value) isEmpty() 获取 get(Object key) size() 
package cn.itcast.map; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class Demo1 { public static void main(String[] args) { Map<String,String> map = new HashMap<String, String>(); map.put("霆锋", "张柏芝"); map.put("文章", "马伊琍"); map.put("汪峰", "章子怡"); map.put("奥巴马", "凤姐"); /* Map<String,String> map2 = new HashMap<String, String>(); map2.put("习总", "彭丽媛"); map2.put("奥巴马", "凤姐"); 添加 System.out.println("返回值:"+ map.put("文章", "姚笛")); map.putAll(map2); //把map2的所有元素添加到map集合中。 删除 map.clear(); //清除map集合中所有 System.out.println("被删除的数据:"+ map.remove("奥巴马")); // 根据键删除一条数据, 返回是该键对应的值。 判断 System.out.println("判断是否存在指定的键:"+ map.containsKey("奥巴马")); System.out.println("判断是否存在指定的值:"+ map.containsValue("凤姐")); System.out.println("判断集合是否为空元素:"+ map.isEmpty()); 获取 System.out.println("根据值获取对应的值:"+ map.get("霆锋")); System.out.println("查看map集合的元素个数:"+ map.size()); */ System.out.println("集合的元素:"+map); } } 

双列集合没有迭代器,所以只能使用单列集合的迭代器,可是单列集合的迭代器都是只能返回一条数据,而map的返回值是以键值对的形式存在的,故此我们要将返回值进行相应的修改,使得单列集合的迭代器能迭代输出双列集合的值

遍历方式一: 可以使用keySet方法遍历。 keySet方法返回的集合只是包含了所有的键,没有包含值。

public class Demo2 { public static void main(String[] args) { Map<String,String> map = new HashMap<String, String>(); map.put("霆锋", "张柏芝"); map.put("文章", "马伊琍"); map.put("汪峰", "章子怡"); map.put("奥巴马", "凤姐"); Set<String> set = map.keySet(); //把map集合中所有key的数据存储到Set集合中返回。 Iterator<String> it = set.iterator(); while(it.hasNext()){ String key = it.next(); System.out.println("键:"+ key+" 值:"+ map.get(key)); } } 

遍历的方式二:可以使用values方法进行遍历。 values方法返回的集合对象只是包含了map中的所有值,没有键的数据。

Collection<String> list = map.values(); // values 把map集合中的所有值存储到一个Collection集合返回 Iterator<String> it= list.iterator(); while(it.hasNext()){ String value = it.next(); System.out.println("值:"+ value); } 

遍历的方式三: 使用 entrySet方式遍历。 推荐使用。

Set<Map.Entry<String,String>> entrys = map.entrySet(); //Set<Entry<String,String>> entrys = map.entrySet(); Iterator<Map.Entry<String,String>> it = entrys.iterator(); //Iterator<Entry<String,String>> it = entrys.iterator(); while(it.hasNext()){ Map.Entry<String,String> entry = it.next(); //Entry<String,String> entry = it.next(); System.out.println("键: "+ entry.getKey()+ " 值:" + entry.getValue()); } 
原文链接:https://yq.aliyun.com/articles/665879
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章