栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Map和Set

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Map和Set

1、搜索 1.1概念

Map和Set是一种专门用来搜索的容器或者数据结构,其搜索的效率与具体的实例化子类有关。

1.2模型

一般把搜索的数据叫关键字(key),和关键字对应的值成为值(value),这就称为key-value的键值对,所以模型会有两种:

①纯key 模型:有一个字典,查找某个字是否存在,此时单纯的搜索用set

②key-value 键值对模型:统计文件中某个单词出现的次数,统计的结果都应该包含:单词+出现的次数 <单词,出现的次数>,此时就用Map

2、Map的常见操作

a.添加操作(put)

 Map map = new HashMap<>();
        //添加元素
        map.put("宋江","及时雨");
        map.put("李逵","黑旋风");
        map.put("吴用","智多星");

若key不存在则将key-value添加到map中,若已经存在,则会覆盖掉原先的数据,显示新的key-value:

map.put("宋江","及时雨");
        map.put("李逵","黑旋风");
        map.put("吴用","智多星");
        map.put("吴用","军师");

b.根据key 取得value(get)

①get(key):根据key 取得 value,若key不存在,则返回null

②getOrDefault(key):根据key返回value,若key不存在,则返回设置的默认值

System.out.println(map.get("宋江"));//->及时雨
        System.out.println(map.get("鲁智深"));//-> null
        System.out.println(map.getOrDefault("鲁智深","花和尚"));

c.删除(remove) 返回键值对的value值

 System.out.println(map.remove("宋江")); //->及时雨

d.遍历(一般不用),要遍历map集合,就需要把Map转为Set集合(因为Collection接口及其子类中实现了for-each循环遍历,但是Map集合跟Collection集合毫无关系),然后进行遍历操作,用方法Map.Entry来实现,就相当于把Map中的键值对包装起来放进Set集合中

        map.put("宋江","及时雨");
        map.put("李逵","黑旋风");
        map.put("吴用","智多星");
        //遍历操作
        //需要将Map转为Set
        //Map->Set
        Set> entries = map.entrySet();
        //for-each遍历Set集合
        for (Map.Entry entry:entries){
            System.out.println(entry.getKey()+"="+entry.getValue());
        }

e.Map集合的搜索※

contains方法再Map中是非常高效的,HasMap中接近O(1),TreeMap中接近O(logn)

 System.out.println(map.containsKey("宋江"));
 System.out.println(map.containsValue("及时雨"));
3、Set的使用

Set集合的使用,等同于List,都是Collection的子接口,最常使用Set集合的场景,用在元素去重!!

例题:136. 只出现一次的数字 - 力扣(LeetCode) (leetcode-cn.com)

           138. 复制带随机指针的链表 - 力扣(LeetCode) (leetcode-cn.com)

           771. 宝石与石头 - 力扣(LeetCode) (leetcode-cn.com)

            旧键盘 (20)__牛客网 (nowcoder.com)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号