Map(关联数组)和Set(集合)
最佳答案 问答题库648位专家为你答疑解惑
目录
Map和Set是用来专门查找的数据结构,查找效率非常高
Map是key-value模型(对应了两个东西)
Set是纯key模型(只对应i一个东西)
Map的使用
Map的方法
Map的put()方法
Map的get()方法
Map的getOrdefault()方法
Map的keySet()方法
Map的entrySet()方法
Entry是Map的内部接口类编辑Entry的方法,v>,v>
Map的values()方法,返回类型是Collection
Map的containsKey()方法
Map的containsValue()方法
Set的使用
Set的方法,
1.有100W个(10个)数据,并且数据有重复的,将所有重复的数据进行去重复
2.有100W个(10个)数据,并且数据有重复的,找到第一个重复的数据
3.统计10W个(几个)数据当中,每个数据出现的次数
4.统计100W个(10个)数据重复数据>=2出现的次数?
Map和Set是用来专门查找的数据结构,查找效率非常高
我们以前也有用来查找的方法比如:
1.直接遍历查找,效率非常慢
2.二分查找,前提还得让数据有序
假如我们将全国人民的身份证信息存储在一个地方然后需要查找某个人的信息就非常麻烦,用直接遍历查找效率非常慢,用二分查找还得把12亿的数据排序一遍,并且它们还非常不适合删除操作
这时候我们就可以用Map或Set两数据结构
Map是key-value模型(对应了两个东西)
key-value模型的意思是 一个关键字对应一个值,
例如:hello在一片文章里出现了几次,hello就是key(关键字),helllo出现的次数就是value(对应的值,这里的值不一定是整数),这里对应了两个东西分别是hello,和hello出现次数
Set是纯key模型(只对应i一个东西)
key模型意思是只有关键字
例如:hello是否出现在某篇文章里
Map的使用
Map是一个接口类,不能实例化,只能实例化实现Map接口的类入TreeMap或HashMap
TreeMap底层是一棵搜索树(红黑树),HashMap底层是一个哈西表
Map的方法
Map的put()方法
Map实现的是TreeMap,由于底层是一棵搜索树(红黑树)它们会这样放
可以发现实现了TreeMap类的由于底层是一颗搜索树(红黑树)它重写了toString方法的同时还对key进行了排序,但要求key能够进行比较(可以实现Comparable接口)
实现了HashMap类由于底层是哈希表,它不要求key一定能够进行比较也并没有根据key排序的同时也没有重写toString()方法
Map的get()方法
根据key名字获取到对应value,没有对应key就返回null
Map的getOrdefault()方法
如果key有返回对应的value值,如果没有就返回默认值
Map的keySet()方法
获取到Map里所有的key值放到Set里,并且还去重,返回类型是Set
Map的entrySet()方法
返回类型是Set<Map.Entry<>>,用于返回所有的key-value关系
Set<Map.Entry<String,Integer>>对应着Map里每条key-value数据,相当于
Map.Entry<String,Integer>对应众多key-value数据里的一条
Entry<K,V>是Map的内部接口类
Entry<K,V>的方法
Map的values()方法,返回类型是Collection<v>
返回Map所有的value值,可以有重复
Map的containsKey()方法
判断Map里是否有对应的key值
Map的containsValue()方法
判断Map里是否有对应的Value值
Set的使用
Set只存储Key并且不能重复
为什么Set存储的数据不能重复?
Set的底层是Map,它利用了Map中key不能重复的原则
Set的方法,
具体方法的使用我们就不展开了,写几道题吧
1.有100W个(10个)数据,并且数据有重复的,将所有重复的数据进行去重复
Set是个纯key模型且能够去重复用这个数据结构刚好
2.有100W个(10个)数据,并且数据有重复的,找到第一个重复的数据
3.统计10W个(几个)数据当中,每个数据出现的次数
这里出现了 每个数据 和 次数 两个不同的元素,用key-value模型,
例如hello在文章里出现了几次
4.统计100W个(10个)数据重复数据>=2出现的次数?
99%的人还看了
相似问题
- Kotlin学习——kt里的集合,Map的各种方法之String篇
- Office文件在线预览大全-Word文档在线预览的实现方法-OFD文档在线预览-WPS文件在线预览
- composer切换全局镜像源的方法
- Python通过selenium调用IE11浏览器报错解决方法
- 测试用例的设计方法(全):正交实验设计方法|功能图分析方法|场景设计方发
- Java8新特性 ----- Lambda表达式和方法引用/构造器引用详解
- C#中抽象类、抽象方法和接口暨内联临时变量的精彩表达
- ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)
- 类方法,静态方法和实例方法的区别及应用场景
- 【链表的说明、方法---顺序表与链表的区别】
猜你感兴趣
版权申明
本文"Map(关联数组)和Set(集合)":http://eshow365.cn/6-35688-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!