hashMap添加key重复时返回值的形式

发布时间 2023-07-27 07:40:35作者: 懵逼的程序小白

hashMap添加key重复

System.out.println(map.put(1, 0)); // null
System.out.println(map.put(1, 1)); // 0
System.out.println(map.put(1, 2)); // 1
System.out.println(map.get(1)); //2 
System.out.println(map.put(2, 1)); // null
System.out.println(map.put(2, 2)); // 1

即在向map中添加元素时,如果无重复的key,返回值为null,
如果有重复的key,返回的是上一个key的value,新加入的key对应的value回覆盖上一个的value
作用:可以解决力扣同构字符串的问题
力扣题目描述:给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/word-pattern

class Solution {
    public boolean wordPattern(String pattern, String str) {
        String[] words = str.split(" ");
        if (words.length != pattern.length()) {
            return false;
        }
        Map<Object, Integer> map = new HashMap<>();
        for (Integer i = 0; i < words.length; i++) {
            if (map.put(pattern.charAt(i), i) != map.put(words[i], i)) {
                return false;
            }
        }
        return true;
    }
}