Java基础 | Map常用方法

Map常用方法

    Map map = new HashMap();  //创建map
    Map iMap = new HashMap();
    iMap.put("狂人日记","鲁迅") 
    map.put("家","巴金"); //添加一个键值对,如果key已存在就覆盖,且返回被覆盖的值
    map.put("朝花夕拾","冰心");
    map.put("骆驼祥子","老舍");
    map.put("项链","莫泊桑");
    map.remove("家")  //删除指定key的键值对,返回被删除的key关联的value,不存在返回null
    map.remove("家","巴金")  //删除指定键值对,成功返回true
    map.size() //返回map中键值对的个数
    map.clear()  //删除map中的所有键值对
    map.isEmpty()  //判断map是否为空
    map.get("项链")  //返回指定Key所对应的value,不存在则返回null
    map.cotainsKey("家") //判断Map中是否包含指定的Key
    map.containsValue("巴金")  //判断Map中是否包含指定的Value
    Collection set = map.entrySet()  //返回Map中键值对所组成的Set.集合元素是Map.Entry(Map的内部类)对象
    Collection set = map.keySet()  //返回Map中key的set集合
    Collection list = map.values()  //返回该Map里所有value组成的Collection

Entry方法

    //Map中包含了一个内部类Entry,包含一下三个方法
    Collection set = map.entrySet()
    set.forEach(entry -> 
        System.out.println("--->"+obj.getKey())  //返回该entry中包含的key
        System.out.println("--->"+obj.getValue())  //返回该entry中包含的value
        obj.setValue("佚名")  //设置entry中的value,并返回value
    )

Java8为Map新增的方法


    //使用remappingFunction根据键值对计算一个新的value,不为空就覆盖,或者添加;为空则删除原键值对;
    Object compute(Object key,BiFunction remappingFunction)
    map.compute("爱的教育",(key,vlaue)->((String)key).length())

    //key对应的键值对不存在或者value为空,函数才起作用。使用remappingFunction根据key计算出value,如果value不为null,则赋值或者添加;value为空则方法失效,不做任何改变
    object computeIfAbsent(object key, Function remappingFunction)

    //对应的key存在且value不为空,方法生效,通过键值对计算出新的value,不为空则赋值,为空就删去原有的键值对
    Object computeIfPresent(object key,BiFunction remappingFunction)

    //遍历Map
    void forEach(BiFunction action)
    map.forEach((k,v)-> System.out.println("key:"+k+" value:"+v));

    //得到指定key的value,如果key不存在,则返回defaultValue
    object getOrDefault(object key,V defalutValue)
    System.out.println(map.getOrDefault("活着","余华"));

    //通过key得到集合中value,如果value不为空,则使用 remappingFunction根据旧value和新value计算出一个结果去覆盖集合中原有的value,如果value为空,则直接用参数key,value覆盖.如果计算结果为null则删除原有键值对
    Object merge(object key,object value,BiFunction remappingFunction)

    //如果key在集合中的value为空或则键值对不存在,则用参数value覆盖
    object putIfAbsent(Object key,object value)

    //替换key在集合中的value。如果key不存在不会添加新的键值对。
    object replace(object key,object value)

    //替换指定的键值对,成功返回true,不存在添加新的键值对
    boolean replace(K key,V oldValue,V newValue)

    //对集合中的所有键值对执行计算,并将返回结果作为value覆盖
    replaceAll(BiFunction function)
    map.replaceAll((k,v)->((String)k).length());

遍历map的方法

    for(Object key : map.keySet()){
        System.out.printLn(key +"---> "+map.get(key))
    }

    map.forEach((k,v)-> System.out.println("key:"+k+" value:"+v));

猜你喜欢

转载自blog.csdn.net/dora_310/article/details/72835393