1、是否有顺序
ArrayList: 有顺序
HashSet: 无顺序
在之前的学习中已经提出 HashSet 是不会按照顺序存储的 且同一个数据不能够重复
注意:
HashSet的具体顺序,既不是按照插入顺序,也不是按照hashcode的顺序。
2、能否重复
List中的数据可以重复
Set中的数据不能够重复
重复判断标准是:
首先看hashcode是否相同
如果hashcode不同,则认为是不同数据
如果hashcode相同,再比较equals,如果equals相同,则是相同数据,否则是不同数据
那么 HashSet 的用途也就在于能够生成指定容量大小的且不重复的随机数
示例:(以下是生成50个 0-9999之间的随机数,要求不能有重复的)
package test;
import java.util.HashSet;
public class Hashset {
public static void main(String[] args) {
HashSet sd=new HashSet();
for (int i = 0; i < 100; i++) {
int h=(int)(Math.random()*10000);
sd.add(h);
if(sd.size()==50)
break;
}
System.out.println(sd);
System.out.println(sd.size());
}
}