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

Map

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

双列集合(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条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章