把ArrayList中的54个值随机放入了HashSet中,为何多次编译执行时HashSet迭代取值顺序固定?set不是无序的么?import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;public class HashSetDemo {
public static void main(String[] args) {
ArrayList<Integer> al=new ArrayList<Integer>();
for (int i = 0; i < 54; i++) {
al.add(i);
}
HashSet<Integer> hs=new HashSet<Integer>();
Random rd=new Random();
for (int i = 0; i < 54;) {
int k=rd.nextInt(54);
if(hs.contains(al.get(k))){
continue;
}
hs.add(al.get(k)); i++;
}
Iterator<Integer> it=hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;public class HashSetDemo {
public static void main(String[] args) {
ArrayList<Integer> al=new ArrayList<Integer>();
for (int i = 0; i < 54; i++) {
al.add(i);
}
HashSet<Integer> hs=new HashSet<Integer>();
Random rd=new Random();
for (int i = 0; i < 54;) {
int k=rd.nextInt(54);
if(hs.contains(al.get(k))){
continue;
}
hs.add(al.get(k)); i++;
}
Iterator<Integer> it=hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货