整体结构
![](https://i-blog.csdnimg.cn/blog_migrate/223f25e28357860c048c9d2c1384c092.png)
导包
import java.util.HashMap;
初始化
HashMap <Integer,Integer> hash=new HashMap<Integer,Integer>();
函数方法
hash.put(K key,V value) K为键,V为值
hash.get(key)
hash.containsKey() 检查 hashMap 中是否存在指定的 key 对应的映射关系
hash.containsValue() 检查hashMap中是否存在value的对于关系
leetcode:两数之和
int res[]=new int[2];
HashMap<Integer,Integer>hash=new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++)
{
if(hash.containsKey(nums[i]))
{
res[0]=hash.get(nums[i]);
res[1]=i;
return res;
}
hash.put(target-nums[i],i);
}
return res;
hashmap.getOrDefault(object key,V defaultValue)
返回key相映射的value,如果找不到给定的key的映射关系,返回默认值defaultValue
hash.values()
哈希表中的所有值
leetcode:字母异位词分组
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String,List<String>> map=new HashMap<String,List<String>>();
for(String str:strs)
{
char ch[]=str.toCharArray();
Arrays.sort(ch);//排序
//排序后的字符串作为键
String key=new String(ch);//转换成字符串
List<String> list=map.getOrDefault(key,new ArrayList<>());//取出键对应的list
list.add(str);
map.put(key,list);
}
return new ArrayList<List<String>>(map.values());
}
}