数据结构:HashMap与HashSet总结
·
HashMap和HashSet作为java集合框架中的重要组件,同时也是java标准库中的具体实现类,下面就是二者的特性、核心方法、使用场景以及对比;
目录
一、HashMap
(1)特性
基于哈希表的Map接口的实现,存储是按照键值对(Key-Value)存储,允许出现多个空值;
(2)核心方法
a.创建
//创建hashMap
HashMap<String, Integer> hashMap = new HashMap<>();
//或者使用下面来创建
Map<String, Integer> map = new HashMap<>();
b.添加键值对
这里可以用来确定每个单词出现的频率,Key来表示单词,Value来表示频率;
//添加
hashMap.put("apple", 2);
hashMap.put("this", 5);
hashMap.put("is", 8);
hashMap.put("me", 10);
c.获取
可以通过get方法,输入Key来获得Value的值;
System.out.println(hashMap.get("is"));
System.out.println(hashMap.get("me"));
//下面这个方法表示查找key为'a'的value,如果没找到就返回默认值,10
System.out.println(hashMap.getOrDefault("a", 10));

d.删除
//删除
hashMap.remove("apple");
System.out.println(hashMap.getOrDefault("apple", 520));

e.查找:返回的是布尔值
System.out.println(hashMap.containsKey("this"));
System.out.println(hashMap.containsValue(10));

f.遍历
for(Map.Entry<String, Integer> entry : hashMap.entrySet()) {
System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue());
}

(3)使用场景
需要使用键值对的情况,比如说统计单词频率、计数统计等等;
二、HashSet
(1)特性
是基于HashMap的实现(使用HashMap存储),存储的是不重复的元素,通常只允许存储一个null值;(存储不重复元素经常可以用来解答算法题)
(2)核心方法
//创建
HashSet<String> hashSet = new HashSet<>();
//或者
Set<String> set = new HashSet<>();
//添加
set.add("apple");
set.add("me");
set.add("this");
set.add("is");
hashSet.add("this is a pear.");
//删除
set.remove("this");
set.remove("me");
//查找
System.out.println(set.contains("is"));
System.out.println(set.contains("a"));
//遍历
for(String str : hashSet) {
System.out.print(str);
}

(3)使用场景
需要去重、并集、交集等集合运算等;
三、对比

最后无论是使用HashMap还是HashSet都需要看清题目,其实二者很好区分,需要键值对的映射关系就是用前者,需要存储唯一元素就是用后者。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)