Java 基础 37 Map集合

2018-02-03  本文已影响10人  小熊先生很不开心

1.1创建Map集合对象并添加元素

Map:

举例:

 学号 |  姓名
 ----|----
it001 | 林青霞
it002 | 张曼玉
it003 | 王祖贤

1.1.1 案例代码

package com.itheima_01;

import java.util.HashMap;
import java.util.Map;

/*
 * Map:
 *      将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
 * 
 * 举例:学生的学号和姓名
 *      it001   林青霞
 *      it002   张曼玉
 *      it003   王祖贤
 * 
 * public interface Map<K,V>
 * 
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        //put(K key,V value):添加元素。
        map.put("it001", "林青霞");
        map.put("it002", "张曼玉");
        map.put("it003", "王祖贤");
        
        //输出集合对象
        System.out.println(map);
    }
}

1.2 Map集合的成员方法

1.2.1 案例代码

package com.itheima_01;

import java.util.HashMap;
import java.util.Map;

/*
 * V put(K key,V value):添加元素
 * V remove(Object key):根据键删除键值对元素
 * void clear():移除所有的键值对元素
 * boolean containsKey(Object key):判断集合是否包含指定的键
 * boolean containsValue(Object value):判断集合是否包含指定的值
 * boolean isEmpty():判断集合是否为空
 * int size():返回集合中的键值对的对数
 * 
 * Map集合中的实现类的数据结构只针对键有效。
 */
public class MapDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //V put(K key,V value):添加元素
        //如果键是第一次存储,就直接存储元素,返回null
        //如果键不是第一次存储,就用值把以前的值替换,返回以前的值
//      System.out.println("put:"+map.put("张无忌", "周芷若"));
//      System.out.println("put:"+map.put("张无忌", "赵敏"));
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");
        
        //V remove(Object key):根据键删除键值对元素
//      System.out.println("remove:"+map.remove("郭靖"));
//      System.out.println("remove:"+map.remove("郭襄"));
        
        //void clear():移除所有的键值对元素
        //map.clear();
        
        //boolean containsKey(Object key):判断集合是否包含指定的键
//      System.out.println("containsKey:"+map.containsKey("郭靖"));
//      System.out.println("containsKey:"+map.containsKey("郭襄"));
        
        //boolean containsValue(Object value):判断集合是否包含指定的值 自己练习
        
        //boolean isEmpty():判断集合是否为空
        //System.out.println("isEmpty:"+map.isEmpty());
        
        //int size():返回集合中的键值对的对数
        System.out.println("size:"+map.size());
        
        //输出集合对象
        System.out.println(map);
    }
}

1.3 Map集合的获取功能测试

1.3.1 案例代码


package com.itheima_01;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * V get(Object key):根据键获取值
 * Set<K> keySet():获取所有键的集合
 * Collection<V> values():获取所有值的集合
 */
public class MapDemo3 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");
        map.put("张无忌", "赵敏");
        
        //V get(Object key):根据键获取值
        System.out.println("get:"+map.get("张无忌"));
        System.out.println("get:"+map.get("张三丰"));
        System.out.println("--------------------");
        
        //Set<K> keySet():获取所有键的集合
        Set<String> set = map.keySet();
        for(String key : set) {
            System.out.println(key);
        }
        System.out.println("--------------------");
        
        //Collection<V> values():获取所有值的集合
        Collection<String> values = map.values();
        for(String value : values) {
            System.out.println(value);
        }
    }
}

1.4 Map集合的遍历之键找值

  Map集合的遍历

1.4.1 案例代码

package com.itheima_02;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * Map集合的遍历
 * 
 * 思路:Map看成是一个夫妻对的集合
 *      A:把所有的丈夫给集中起来
 *      B:遍历丈夫的集合,获取到每一个丈夫
 *      C:根据丈夫去找对应的妻子
 * 
 * 转换:
 *      A:获取所有键的集合
 *      B:遍历键的集合,获取到每一个键
 *      C:根据键去找值
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");
        map.put("张无忌","赵敏");
        
        //获取所有键的集合
        Set<String> set = map.keySet();
        //遍历键的集合,获取到每一个键
        for(String key : set) {
            //根据键去找值
            String value = map.get(key);
            System.out.println(key+"---"+value);
        }
    }
}

1.5 Map集合的遍历之键值对对象找键和值

  Map集合遍历的方式2

1.5.1 案例代码


package com.itheima_02;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * Map集合遍历的方式2
 * 
 * 思路:
 *      A:获取所有结婚证的集合
 *      B:遍历结婚证的集合,得到每一个结婚证
 *      C:根据结婚证获取丈夫和妻子
 * 
 * 转换:
 *      A:获取所有键值对对象的集合
 *      B:遍历键值对对象的集合,得到每一个键值对对象
 *      C:根据键值对对象获取键和值
 */
public class MapDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");
        map.put("张无忌","赵敏");
        
        //获取所有键值对对象的集合
//      Set<Map.Entry<K,V>> entrySet()
//      获取键值对对象的集合
        Set<Map.Entry<String,String>> set = map.entrySet();
        //遍历键值对对象的集合,得到每一个键值对对象
        for(Map.Entry<String,String> me : set) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key+"---"+value);
        }
    }
}

1.6 Map 集合的两种遍历方式图解

Map.png
上一篇下一篇

猜你喜欢

热点阅读