1.ArrayList和HashSet是否有顺序
ArrayList: 有顺序
想像成学生站排,每个人手中有自己在第几排的号码牌
HashSet: 无顺序
HashSet的具体顺序,既不是按照插入顺序,也不是按照hashcode的顺序。
HasetSet源代码中的部分注释
/**
* It makes no guarantees as to the iteration order of the set;
* in particular, it does not guarantee that the order will remain constant over time.
*/
不保证Set的迭代顺序; 确切的说,在不同条件下,元素的顺序都有可能不一样
笔者水平有限,待笔者修炼之大成再来解释具体的深层次的根本的hashset顺序问题
2.ArrayList和HashSet能否重复
List中的数据可以重复
列表或者数组中的值可以重复 就比如学生站排有的学生的姓名相同,但他们那的号码牌不同站在不同位置
Set中的数据不能够重复
首先看hashcode是否相同
如果hashcode不同,则认为是不同数据
如果hashcode相同,再比较equals,如果equals相同,则是相同数据,否则是不同数据。
hashcode的问题会另开一篇文章进行学习,可以暂时理解为是一个门牌号。