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()); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)