HashMap和HashSet作为java集合框架中的重要组件,同时也是java标准库中的具体实现类,下面就是二者的特性、核心方法、使用场景以及对比;

目录

一、HashMap

(1)特性

(2)核心方法

(3)使用场景

二、HashSet

(1)特性

(2)核心方法

(3)使用场景

三、对比


一、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都需要看清题目,其实二者很好区分,需要键值对的映射关系就是用前者,需要存储唯一元素就是用后者。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐