zoukankan      html  css  js  c++  java
  • 【JAVA】【集合10】Java中的Map接口

    一、Map定义

    Map是一系列键值对,一个键(key)对应一个值(value)。

    Map 接口定义了用于定义和查询映射的 API。Map 接口属于 Java 集合框架,但没有扩展 Collection 接口,因此 Map 只是一种集合, 而不是 Collection 类型。

    在java.util.Map中定义。

    public interface Map<K,V>
    

    Map 是参数化类型,有两个类型变量。类型变量 K 表示映射中键的类型,类型变量 V 表示键对应的值的类型。如:

    • 有个映射,其键是 String 类型, 值是 Integer 类型,那么这个映射可以表示为 Map<String, Integer>。

    Map 的重要特性之一:可以视作集合。虽然 Map 对象不是 Collection 类型,但映射的键可以看成 Set 对象,映射的值可以看成 Collection 对象,而映射的键值对可以看成由 Map.Entry 对象组成的 Set 对象。

    二、Map定义的接口

    1.增加/修改元素

    (1)指定<key, value>新增/修改元素

    V put(K key, V value);
    

    注:如果Map中先前已包含该key的映射,则其Value被参数值替换。

    (2)把参数指定Map内容 添加到目标Map中

    void putAll(Map<? extends K, ? extends V> m);
    

    (2)指定key,设置value为新的值

    V replace(K key, V value)
    

    (3)指定<key, value>把value替换为新值

    boolean replace(K key, V oldValue, V newValue) 
    

    (4)自定义修改

    merge方法有三个参数:

    • key:map中的键
    • value:使用者传入的值
    • remappingFunction:BiFunction函数接口(该接口接收两个值,执行自定义功能并返回最终值)。

    当map中不存在指定的key时,便将传入的value设置为key的值;当key存在时,执行一个方法该方法传入key的旧值和参数指定的新value,执行自定义的方法返回最终结果设置为key的值。

    V merge(K key, V value,
                BiFunction<? super V, ? super V, ? extends V> remappingFunction)
    

    2.删除元素

    (1)指定key,删除元素

    V remove(Object key);
    

    (2)指定<key, value>,若存在则删除

    boolean remove(Object key, Object value)
    

    (3)清空Map

    void clear();
    

    3.查找元素

    (1)指定key获取Value

    V get(Object key);
    

    (2)判断key是否存在

    boolean containsKey(Object key);
    

    (3)判断value是否存在

    boolean containsValue(Object value);
    

    4.判断Map的size

    int size();
    
    boolean isEmpty();
    

    5.集合之间转换

    (1)把Map的key作为set集合返回

    Set<K> keySet();
    

    (2)把Map的值作为Collection集合返回

    Collection<V> values();
    

    (3)把Map作为由 Map.Entry 对象组成的 Set 对象返回

    Set<Map.Entry<K, V>> entrySet();
    

    三、Map中的Entry<k, v>接口

    map中定义了Entry<k, v>内部接口。用于定义Map的单个元素的操作接口定义。

    interface Entry<K,V> { 
        K getKey();
        V getValue();
        V setValue(V value);
        boolean equals(Object o);
        ...
    }
    

    四、遍历Map中所有元素

    1.value集合方式:

    Map<String. String> strMap = new HashMap<>();   
    for(String value : strMap.values()){   
        System.out.println(value);   
    }  
    

    2.keyset方式:

    Map<String. String> strMap = new HashMap<>();   
    for(String key : strMap.keySet()){   
        strMap.get(key);   
    }  
    

    3.lambda表达式

    Map<String. String> strMap = new HashMap<>();
    strMap.forEach((key, value) - > {
        System.out.println(key + ":" + value);
    });
    

    五、Java中实现Map接口的类

    image

  • 相关阅读:
    【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用
    【iCore4 双核心板_ARM】例程十一:DMA实验——存储器到存储器的传输
    【iCore1S 双核心板_FPGA】例程八:触发器实验——触发器的使用
    【iCore4 双核心板_ARM】例程十:RTC实时时钟实验——显示时间和日期
    【iCore4 双核心板_ARM】例程九:ADC实验——电源监控
    WebBrowser的Cookie操作之流量刷新机
    网站受攻击的常用手段
    八爪鱼招标网的百度权重升为2了,独立IP也从0快速发展为1000
    网站添加数据出错,原来是MS SQL Server2008日志文件占据空间过大导致的
    当你的网站被疯狂攻击时你能做什么?
  • 原文地址:https://www.cnblogs.com/yickel/p/14794155.html
Copyright © 2011-2022 走看看