Java学习——集合的使用(三)
2021/11/29 14:38:26
本文主要是介绍Java学习——集合的使用(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Set集合
-
set集合特点:
-
不包含重复元素的集合
-
没有带索引的方法,所以不能使用for循环遍历
-
-
创建集合对象,使用Set接口的泛型实现类HashSet
-
HashSet对迭代的顺序不做任何保证(例如,添加的顺序时1,2,3输出可能是2,3,1)
-
关于哈希值
-
哈希值是JDK根据对象的地址或者字符串或者数字,算出来的int类型的数值
-
Object类中有一个方法,hashCode(),可以获取对象的哈希值
-
hashCode的合同:
-
只要在执行java程序期间多次在同一个对象上调用它,hashCode返回的必须是相同的整数,前提是不修改equals比较中使用的信息,在同一应用程序的一次执行到另一次执行,该整数不需要保持一致
-
若两个对象根据equals方法相等,则这两个方法调用hashcode方法返回的值必须相等
-
若两个对象根据equals方法不相等,就必须返回不同的hashcode值
-
-
默认的不同的对象的哈希码是不同的:
-
通过方法重写,可以实现不同的对象的哈希值是相同的
HashSet集合
-
HashSet特点:
-
底层数据结构是哈希表
-
对迭代顺序不做任何保证,也就是不保证放入和取出元素的顺序一致。
-
没有带索引的方法,所以不能使用for循环进行遍历
-
不包含重复的元素集合
-
-
HashSet集合存储学生对象
使用HashSet列表存储学生对象的时候出现了重复元素,是因为Student类没有重写equals和hashCode方法
重写完方法后:
LinkedHashSet集合
-
LinkedHashSet特点:
-
哈希表和链表实现的Set接口,具有可预测的迭代次序
-
链表保证了元素的有序性,所以说元素的放入和取出顺序是一致的
-
由于哈希表保证元素的唯一,所以不会有重复的元素
-
TreeSet集合
-
TreeSet集合特点
-
元素有序,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方法取决于构造方法
TreeSet():无参构造方法根据元素的自然顺序进行排序
TreeSet(Comparator comparator):根据指定的比较器进行排序
-
没有带索引的方法,所以不能使用普遍的for循环遍历
-
由于是Set集合,所以不包含重复使用的集合
-
-
TreeSet使用无参构造,自然排序,且不包含重复添加的元素
这篇关于Java学习——集合的使用(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)