7月25号_Map集合

2018-07-25  本文已影响26人  须臾之北

Map

今天的主要内容

一、集合框架(Map集合概述和特点)

  1. Map接口概述

    • 查看API可以知道:

      • 将键映射到值的对象( maps keys to values)

      • 一个映射不能包含重复的键(A map cannot contain duplicate keys)

      • 每个键最多只能映射到一个值( each key can map to at most one value.)

  1. Map接口和Collection接口的不同

    • Map是双列的,Collection是单列的

    • Map的键唯一,Collection的子体系Set是唯一的

    • Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

二、集合框架(Map集合的功能概述)

三、集合框架(Map集合的遍历之键找值)

  1. 键找值思路:

    • 获取所有键的集合

      • Set<K> keySet()——返回所有键的集合
    • 遍历键的集合,获取到每一个键

      • Set集合中的iterator方法
    • 根据键找值

      • V get(Object key)
  2. 程序——Map集合的遍历之键找值

     public static void main(String[] args) {
         Map<String,Integer> map = new HashMap<>();
         
         map.put("小王", 21);
         map.put("小李", 22);
         map.put("小花", 24);
         map.put("小明", 25);
         
         //获取所有键
         Set<String> set = map.keySet();
         
         //获取迭代器
         Iterator<String> i = set.iterator();
         
         //遍历输出所有键
         while(i.hasNext()) {
             String key = i.next();
             System.out.println("key = " + key + " value = " + map.get(key));
         }
     
         //增强的for循坏输出键值对
         /*
         for(String key : map.keySet()) {
             System.out.println("key = " + key + " value = " + map.get(key));
         }*/
     }
    

四、集合框架(Map集合的遍历之键值对对象找键和值)

  1. 键值对对象找键和值思路:、

    • 获取所有键值对对象的集合——entrySet方法返回Map.Entry类型

      • 将所有的Map.Entry对象放在Set集合中
* 遍历键值对对象的集合,获取到每一个键值对对象

    * Set接口中的iterator方法遍历出每一个Map.Entry对象

* 根据键值对对象找键和值

    * 利用Map.Entry接口中的getKey()和getValue方法获取键和值
  1. 案例演示
    • Map集合的遍历之键值对对象找键和值

        public class TestIterator_3 {
            public static void main(String[] args) {
                Map<String,Integer> map = new HashMap<>();
                
                map.put("小王", 21);
                map.put("小李", 22);
                map.put("小花", 24);
                map.put("小明", 25);
                
                /*//Map.Entry说明Entry是Map的内部接口
                //将键和值封装成Entry对象,并存储在Set集合中
                Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
                
                //获取每一个对象
                Iterator<Map.Entry<String, Integer>> i = entrySet.iterator();
                
                while(i.hasNext()) {
                    
                    Map.Entry<String,Integer> me = i.next();
                    System.out.println("key = " + me.getKey() + "value  = " + me.getValue());
                }*/
                
                for(Map.Entry<String, Integer> e : map.entrySet()) {
                    System.out.println("key = " + e.getKey() + "value  = " + e.getValue());
                }
            }
        }
        /*
         *   在JDK1.8中输出结果为:
         *  -----------------------
         *  key = 小李value  = 22
            key = 小明value  = 25
            key = 小王value  = 21
            key = 小花value  = 24
            ------------------------
         * */
      

五、HashMap

六、LinkedHashMap

七、TreeMap

八、集合框架(统计字符串中每个字符出现的次数)

九、集合框架(HashMap和Hashtable的区别)

十、集合框架(Collections工具类的概述和常见方法讲解)

十一、集合框架(模拟斗地主洗牌和发牌)

上一篇下一篇

猜你喜欢

热点阅读