java (map集合set集合)

发布时间:2024年01月17日

Set和Map都会作为进行搜索的容器或者数据结构

Map:

1.键值对,键不可重复,值可以重复

HashMap:可以存储一个为null的键,值也可以为null

Map并没有继承自Collection接口

Map是一个接口类,该类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复

Map接口下有两个普通子类,HashMap和TreeMap,其中,HashMap就是我们通常所说的哈希表

Set:

无序,存取顺序不一致,不重复,无索引

所以不能使用普遍for 循环遍历,也不能通过索引获取元素

HashSet:(HashSet集合底层采取哈希表存储的数据)

1.元素是无序的,HashSet是一个没有重复元素的集合,不保证集合的迭代顺序,所以随着时间元素的顺序可能会改变

2.允许空值,不是线程安全的?

3.HashSet基于HashMap实现,HashMap中输入一个键值对,而在HashSet中只输入一个值

4.添加使用add(),但是HashSet不会存重复的元素,所以add相同的不会存进去

5.哈希值:是JDK根据对象的地址,按照某种规则算出来的int类型的数值,同一个对象多次调用hashCode()方法返回的哈希值是相同的。一般,不同对象的哈希值是不同的。

TreeSet:(不重复,无索引,可排序)

1.对于数值类型:Integer , Double,官方默认按照大小进行升序排序

2.对于字符串类型:默认按照首字符的编号升序排序

3.对于自定义类型如Student对象,TreeSet无法直接排序

TreeSet集合存储对象的的时候有2种方式可以设计自定义比较规则:

1.让自定义的类实现Comparable接口重写里面的compareTo方法来定制比较规则

2.TreeSet集合有参数构造器,可以设置Comparator接口对应的比较器对象,来定制比较规则

文章来源:https://blog.csdn.net/2301_77405161/article/details/133840393
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。