产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

By Lee - Last updated: 星期日, 六月 9, 2013

产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

用一个ArrayList存储1到100
然后随机产生0到arraylist.size()之间的数字作为下标
然后从arraylist中remove掉刚产生的那个下标的数存到数组中,直到arraylist中的size为0即可,这样就不用去判断浪费大量时间,用set的话虽然表面上没做判断,实际上也是判断过的

public class Rand {
public static void main(String[] args) {
int[] fill = new int[100];
List<Integer> list = new ArrayList<Integer>();
for(int i=1; i<=100; i++) {
list.add(i);
}

Random random = new Random();
for(int i=0; i<fill.length; i++) {
fill[i] = list.remove(random.nextInt(list.size()));
}

for(int i=0; i<fill.length; i++) {
System.out.print(fill[i] + ” “);
}
}
}

发表在 JAVA面试 • • ↑Top 文章来源