当前位置:主页 > 查看内容

Set和Map

发布时间:2021-07-10 00:00| 位朋友查看

简介:Set和Map Set和Map Set Set中的常用方法 Map Map中的常用方法 Set和Map TreeSet和TreeMap在Java中利用搜索树实现的Map和Set实际上是用的 红黑树 而 红黑树是一颗近似平衡的二叉搜索树 。 关于二叉搜索树 见下面链接 链接 HashSet和HashMap在java中利用哈希表……

Set和Map

TreeSet和TreeMap在Java中利用搜索树实现的Map和Set;实际上是用的红黑树,而红黑树是一颗近似平衡的二叉搜索树
关于二叉搜索树 :见下面链接:
链接

HashSet和HashMap在java中利用哈希表实现;Java中使用哈希桶方式解决冲突的;Java会在冲突链表长度大于一定的阀值后,将链表转变为搜索树(红黑树);

Set

注意:

  1. Set继承自Collection接口
  2. Set中只存储了key,并且要求key一定唯一
  3. Set的底层是使用Map实现的,其使用key与Object的一个默认对象作为键值对插入到Map中
  4. Set的最大功能就是对集合中的元素去重
  5. 实现Set接口的常用类有TreeSet、HashSet,还有一个LinkedSet,LinkedSet是在HashSet的基础上维护了一个双向链表来记录元素的插入顺序
  6. Set中的key不能修改,如果需要修改,将原来的删除掉,重新插入
  7. Set中不能插入null的key

Set中的常用方法:

方法解释
boolean add(E e)添加元素
void clear()请空
boolean contains(Object o)判断元素是否存在
boolean remove(Object o)删除元素
Object[] toArray()Set中的元素转换数组

Map

Map中存储的就是Key-value的键值对,Set中只存储了key。
Map是一个接口类,没有继承Collection,该类中存储的是的键值对,并且k一定是唯一的,不能重复。

注意:

  • Map是一个接口,不能实例化对象,如果需要只能,实例化其实现类TreeMap和HashMap。
  • Map中存放的键值对的key是唯一的,value可以重复
  • 在Map中,插入键值对的时候,key不能为空,但是value可以为空
  • Map中的key可以全部分离出来存储在Set中(因为key不重复)
  • Map中value可以分离出来,存储在Collection中(因为value有重复)
  • Map的key不能修改,只能删除再重新插入,value可以修改

Map中的常用方法:

方法解释
V get(Object key)返回key对应的value
V getOrDefault(Object key,Object defaultValue)返回key对应的value ,key不存在返回默认值
V put(K key ,V value)设置key对应的value,第一次为插入
V remove(Object o)删除key对应的映射关系
boolean containsKey(Object key)判断是否包含key
boolean containsValue(Object value)判断是否包含value
Set<Map.Entry<k,v>>entrySet()返回所有的key-value映射关系

关于Map.Entry<k,v>
Map.Entry<k,v>是Map中实现存放key-value的内部类,主要提供了key-value的获取,以及value的设置和key的比较方式。

方法解释
K getKey()返回entry中key
V getValue()返回entry中value
V setValue(V value)将键值对中value替换
;原文链接:https://blog.csdn.net/weixin_52142731/article/details/115696433
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:IDEA的优化配置 下一篇:没有了

推荐图文


随机推荐