map hashmap api

接口:java.util.Map<K, V>

实现:

java.util.HashMap<K, V>:哈希表
java.util.TreeMap<K, V>:平衡树

getOrDefault

map.getOrDefault("key", default)//如果map里有key就返回key对应的value,没有就返回default
在查找场景中,defualt设置为0,如果查询结果为空,则返回0;
public class HashMaptest {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("张三", 23);
        map.put("赵四", 24);
        map.put("王五", 25);
        String age= String.valueOf(map.getOrDefault("赵四", 30));
        //String age = map.getOrDefault("赵四", 30);
        System.out.println(age);// 24,map中存在"赵四",使用其对应值24
        String age2 = String.valueOf(map.getOrDefault("刘能", 30));
        System.out.println(age2);// 30,map中不存在"刘能",使用默认值30
        System.out.println(map);
    }
}

image

遍历map 中的 key 和 value

public static void main(String[] args) {
        Boolean a=isAnagram("abczxcvbnm","cabmnbvcxz");
        System.out.println(a);

    }
    public static boolean isAnagram(String s, String t) {
        if(s.length()!=t.length()) return false;
        Map<Character,Integer> map=new HashMap<>();
        for(int i=0;i<s.length();i++){
            map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
            map.put(t.charAt(i),map.getOrDefault(t.charAt(i),0)-1);
        }
        for(Integer value:map.values()){    //单独遍历 vulue
            if(value!=0) return false;

        }
        for(Character x:map.keySet()){    //单独遍历key
            System.out.println(s);

        }
        for (Map.Entry<Character, Integer> entry : map.entrySet()) {    //key value一起遍历
            Character mapKey = entry.getKey();
            Integer mapValue = entry.getValue();
            System.out.println(mapKey + ":" + mapValue);
        }

        return true;        

    }

}

putAll 将另一个Map存入当前map

Map<String,String> map = new HashMap<>();
        //添加符合要求的健值存入map
        map.put("A","a");
        map.put("B","b");
        Map<String,String> map1 = new HashMap<>();
        map1.put("C","c");
        map1.put("D","d");
        map1.put("E","e");
        //将另一个Map存入当前map
        map.putAll(map1);
        System.out.println(map);
        System.out.println(map1);

image

boolean containskey = map.containsKey("A");
//根据key是否存在返回一个布尔值

keySet()

返回Map里面所有的Key ,返回类型为Set集合(不重复)

Set<String> key = map.keySet();

[A, C, D, E]

values()

返回Map里面所有的value,返回类型为Collection集合(可以重复);

Collection collection = map.values();
[aa, c, d, e]

posted on 2022-10-26 21:49  你是千堆雪我是长街7  阅读(30)  评论(0)    收藏  举报

导航