0
点赞
收藏
分享

微信扫一扫

笔记:Java中Map集合的基本功能及遍历方式

天天天蓝loveyou 2022-03-16 阅读 46
  • Map集合概述:
    public interface Map<K,V>
    将键映射到值的对象。不能包含重复的键; 每个键可以映射到最多一个值。
    该接口代替了Dictionary类,它是一个完全抽象的类而不是接口。

  • 创建Map集合的对象:

    • 多态的方式
    • 具体的实现类HashMap
  • Map集合的基本功能:

    • V put​(K key, V value): 将指定的值与该映射中的指定键相关联(可选操作)。
    • V remove​(Object key): 如果存在(从可选的操作),从该地图中删除一个键的映射。
    • void clear​(): 从该地图中删除所有的映射(可选操作)。
    • boolean containsKey​(Object key): 如果此映射包含指定键的映射,则返回 true 。
    • boolean containsValue​(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
    • boolean isEmpty​(): 如果此映射不包含键值映射,则返回 true 。
    • int size​(): 返回此地图中键值映射的数量。
import java.util.HashMap;
import java.util.Map;

/*
    Map集合的基本功能:
    V        put​(K key, V value): 将指定的值与该映射中的指定键相关联(可选操作)。
    V        remove​(Object key): 如果存在(从可选的操作),从该地图中删除一个键的映射。
    void     clear​():  从该地图中删除所有的映射(可选操作)。
    boolean  containsKey​(Object key): 如果此映射包含指定键的映射,则返回 true 。
    boolean  containsValue​(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
    boolean  isEmpty​(): 如果此映射不包含键值映射,则返回 true 。
    int      size​(): 返回此地图中键值映射的数量。
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();

        //  V        put​(K key, V value): 将指定的值与该映射中的指定键相关联(可选操作)。
        map.put("张彤彤", "杜美美");
        map.put("李珊珊", "李悦悦");
        map.put("谢婷婷", "张大同");

        //V        remove​(Object key): 如果存在(从可选的操作),从该地图中删除一个键的映射。
//        System.out.println(map.remove("李珊珊"));//李悦悦
//        System.out.println(map.remove("赵馨馨"));//null

        //void     clear​():  从该地图中删除所有的映射(可选操
//        map.clear();

        //boolean  containsKey​(Object key): 如果此映射包含指定键的映射,则返回 true 。
//        System.out.println(map.containsKey("张彤彤"));//true
//        System.out.println(map.containsKey("张欢欢"));//false

        //boolean  containsValue​(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
//        System.out.println(map.containsValue("杜美美"));//true
//        System.out.println(map.containsValue("张欢欢"));//false

        //boolean  isEmpty​(): 如果此映射不包含键值映射,则返回 true 。
        System.out.println(map.isEmpty());//false

        //int      size​(): 返回此地图中键值映射的数量。
        System.out.println(map.size());//3

        //输出集合
        System.out.println(map);
    }
}
  • Map集合的获取功能:
    • V get​(Object key): 根据键获取值
    • Set keySet​(): 获取所有键的集合
    • Collection values():获取所有值的集合
    • Set<Map.Entry<K,V> entrySet():获取所有键值对对象的集合
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
    Map集合的获取功能:
    V        get​(Object key): 根据键获取值
    Set<K>   keySet​(): 获取所有键的集合
    Collection<V>values():获取所有值的集合
    Set<Map.Entry<K,V> entrySet():获取所有键值对对象的集合
 */
public class MaoDemo {
    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(map.get("张彤彤"));//杜美美
//        System.out.println(map.get("李珊珊"));//李悦悦

        //    Set<K>   keySet​(): 获取所有键的集合
        Set<String> keySet = map.keySet();
//        for (String s:keySet){
//            System.out.println(s);
//        }
//        /*
//           结果:杜美美
//                李悦悦
//                张彤彤
//                谢婷婷
//                李珊珊
//         */

        //Collection<V>values():获取所有值的集合
        Collection<String> values = map.values();
        for (String s:values){
            System.out.println(s);
        }
        /*
           结果:
                杜美美
                张大同
                李悦悦
         */
    }
}
  • Map集合的遍历(方式1):
    • 可以把Map集合看成是夫妻集合
    • 转换Map集合中的操作:
      • 获取所有键的集合,用keySet()方法实现
      • 遍历键的集合,获取每一个键,用增强for循环实现
      • 根据键去找值,用get(Object key)方法实现
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
    Map集合的遍历(方式1):
    - 转换Map集合中的操作:
        - 获取所有键的集合,用keySet()方法实现
        - 遍历键的集合,获取每一个键,用增强for循环实现
        - 根据键去找值,用get(Object key)方法实现

 */
public class MapDemo01 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String, String> map = new HashMap<String, String>();

        //添加元素
        map.put("张彤彤", "杜美美");
        map.put("李珊珊", "悦悦");
        map.put("张大同", "谢婷婷");

        //获取所有键的集合,用keySet()方法实现
        Set<String> keySet = map.keySet();

        //遍历键的集合,获取每一个键,用增强for循环实现
        for (String key:keySet){
            //根据键去找值,用get(Object key)方法实现
            String value = map.get(key);
            System.out.println(key + "," + value);
        }
    }
}
  • Map集合的遍历(方式2):
    • 可以把Map集合看成是夫妻集合
    • 转换Map集合中的操作:
      • 获取所有键值对对象的集合:Set<Map.Entry<K,V> entrySet()
      • 遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
      • 根据键值对对象获取键和值:用getKey()得到键,用getValue得到值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
    Map集合的遍历(方式2):
    - 可以把Map集合看成是夫妻集合
    - 转换Map集合中的操作:
        - 获取所有键值对对象的集合:Set<Map.Entry<K,V> entrySet
        - 遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
        - 根据键值对对象获取键和值:用getKey()得到键,用getValue得到值
 */
public class MapDemo02 {
    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>> entrySet = map.entrySet();

        //遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
        for (Map.Entry<String,String>me : entrySet){
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + ","+ value);

        }
    }
}

举报

相关推荐

0 条评论