什么是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 :它是自然排序,排序的规则是单一的不能够应对复杂的变化的需求;