Java集合框架之Set

简介: Java集合框架之Set

什么是Set :

注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。

Set的特点:

去重复 . 无序

去重复:

1.set 去重复底层原理是与对象的hashcode以及equals方法相关

2.判断重复元素的时候,是比较hashcode值,在调用equals比较内容

去重复如图: 在调用hashCode方法时我们改变了他的反回值如图  return的反回值是1 他们就会去做比较有多少个set的值就要做几次比较;

并且他们的会去调用equals方法

遍历:Set的遍历:for . 迭代器

for的遍历方法使用:

这是他的结果是:

迭代器的遍历:

               "Set中它是没有下标它是无序的"        


迭代器的结果:

set的集合排序

基本排序:

他是会自己排序的如图这个就是他的结果级;

如果像要强制转换就会如下:

这里要注意:

它是会报一个错误:类型转换异常,不可以强制转换一个java.lang.Comparable接口

因此我们可以得到现象:

1.String沉默是可以排序的

2.自定义的对象无法排序的,会报类型转换异常

如果我们用名字去排序:

比较完成后看结果:

java.lang.Comparable :它是自然排序,排序的规则是单一的不能够应对复杂的变化的需求;

目录
相关文章
|
2天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
9 0
|
2天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
7 0
|
2天前
|
Java 索引
【JAVA基础篇教学】第九篇:Java中Set详解说明
【JAVA基础篇教学】第九篇:Java中Set详解说明
|
4天前
|
存储 安全 算法
掌握Java并发编程:Lock、Condition与并发集合
掌握Java并发编程:Lock、Condition与并发集合
11 0
|
4天前
|
前端开发 安全 Java
使用Spring框架加速Java开发
使用Spring框架加速Java开发
9 0
|
4天前
|
存储 安全 Java
深入理解Java集合框架
深入理解Java集合框架
9 0
|
4月前
|
存储 安全 Java
聊聊Java集合框架的ArrayList
其实 Java 集合框架也叫做容器,主要由两大接口派生而来,一个是 ``collection``,主要存放对象的集合。另外一个是``Map``, 存储着键值对(两个对象)的映射表。
58 0
聊聊Java集合框架的ArrayList
|
5月前
|
存储 Java 索引
Java集合框架:ArrayList和LinkedList的区别是什么?
Java集合框架:ArrayList和LinkedList的区别是什么?
25 0
|
5月前
|
存储 安全 Java
深入理解Java集合框架:ArrayList、LinkedList和HashMap
深入理解Java集合框架:ArrayList、LinkedList和HashMap
222 0
|
存储 Java 索引
Java 集合框架03---ArrayList的源码分析
上篇我们学习了Collection的相关源码,下面我们将继续学习List 家族中最常用的一个集合ArrayList。
90 0
Java 集合框架03---ArrayList的源码分析