Map集合

Map集合

Map 集合的概述

  • interface Map<K,V> K:键的类型; V:值得类型
  • 将键映射到值得对象;不能包含重复的键;每个键可以映射到最多一个值
  • 例如:学生的学号和姓名
    • 001     张三
    • 002     李四
    • 003     王五

创建Map集合的对象

  • 多态的方式
  • 具体的实现类HashMap
import java.util.HashMap;
import java.util.Map;

public class Demo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();

        //V put(K key, V value) 将指定的值与该映射中的指定键相关联
        map.put("001", "张三");
        map.put("002", "李四");
        map.put("003", "王五");
        map.put("001", "二狗");  //当键第二次出现将会修改第一次出现的值
        System.out.println(map);
    }
}

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()集合的长度,也就是集合中键值对的个数
import java.util.HashMap;
import java.util.Map;

public class Demo {
    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();
        //V put(K key, V value)
        map.put("K01", 0.1);
        map.put("K02", 0.2);
        map.put("K03", 0.3);

        System.out.println(map);

        //V remove(Object key)
        System.out.println(map.remove("K02"));
        System.out.println(map);
        //boolean containsKey(Object key)
        System.out.println(map.containsKey("K03"));
        //boolean containsValue(Object value)
        System.out.println(map.containsValue(0.3));
        //boolean isEmpty()
        System.out.println(map.isEmpty());
        // int size()
        System.out.println(map.size());
        //void clear()
        map.clear();
        System.out.println(map);
    }
}

Map集合获取功能

  • V get(Object key):根据键获取值
  • Set keySet():获取所有键的集合
  • Collection values():获取所有值的集合
import java.util.*;

public class Demo {
    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();

        map.put("K01", 0.01);
        map.put("K02", 0.02);
        map.put("K03", 0.03);
        //V get(Object key):根据键获取值
        System.out.println(map.get("K03"));
        //Set<K> keySet():获取所有键的集合
        System.out.println(map.keySet());
        //Collection<V> values():获取所有值的集合
        System.out.println(map.values());

    }
}

Map集合的遍历方式一

遍历思路:

  • 获取所有键的集合。用keySet()方法实现
  • 遍历键的集合,获取到每一个键。用增强for实现
  • 根据键去找值。用get(Object key)实现
import java.util.*;

public class Demo {
    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();
        map.put("K01", 0.1);
        map.put("K02", 0.2);
        map.put("K03", 0.3);
        map.put("K04", 0.4);
        Set<String> key = map.keySet();
        for (String k : key) {
            Double value = map.get(k);
            System.out.println(k + "," + value);
        }
    }
}

Map集合的遍历方式二

遍历思路:

  • 获取所有键值对对象的集合
    • Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
  • 遍历键值对对象的集合,得到每一个键值对对象
    • 用增强for实现,得到每一个Map.Entry
  • 根据键值对对象获取键和值
    • getKey()得到键
    • getValue()得到值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("A", "a");
        map.put("B", "b");
        map.put("C", "c");
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> i : entries) {
            System.out.println(i.getKey() + "," + i.getValue());
        }
    }
}
点赞