如何随机选择arraylist中的若干个内容

时间:2021-05-06 05:49:43
比如从数据库中取出1000条记录放入arraylist中,然后从中随机选择10条记录,如何实现

6 个解决方案

#1


用Random对象产生10个 0 - 999 的随机数,然后用随机数做集合下标取出来就行了

#2


引用 1 楼  的回复:
用Random对象产生10个 0 - 999 的随机数,然后用随机数做集合下标取出来就行了
逻辑里面加上判断重复的情况。

#3


List list = new ArrayList<Integer>();
for(int i = 0;i<1000;i++){//你理解为赋值就可以了,没有其他含义
list.add(i);
}

int[] result = new int[10];
for(int i = 0;i<10;i++){
result[i] = list.remove(Math.abs(new Random().nextInt())%list.size());
System.out.print(result[i]+"\t");
}

#4


引用 3 楼  的回复:
List list = new ArrayList<Integer>();
for(int i = 0;i<1000;i++){//你理解为赋值就可以了,没有其他含义
list.add(i);
}

int[] result = new int[10];
for(int i = 0;i<10;i++){
result[i] = list.remove(Math.abs(new Ra……


+1  这么不会出现重复的情况

#5


从集合类中随机取数据,将取到的数据放到set里面,放的时候判断集合大小是否大于十,大于就不放了。

#6


该回复于2012-05-08 08:34:00被版主删除

#1


用Random对象产生10个 0 - 999 的随机数,然后用随机数做集合下标取出来就行了

#2


引用 1 楼  的回复:
用Random对象产生10个 0 - 999 的随机数,然后用随机数做集合下标取出来就行了
逻辑里面加上判断重复的情况。

#3


List list = new ArrayList<Integer>();
for(int i = 0;i<1000;i++){//你理解为赋值就可以了,没有其他含义
list.add(i);
}

int[] result = new int[10];
for(int i = 0;i<10;i++){
result[i] = list.remove(Math.abs(new Random().nextInt())%list.size());
System.out.print(result[i]+"\t");
}

#4


引用 3 楼  的回复:
List list = new ArrayList<Integer>();
for(int i = 0;i<1000;i++){//你理解为赋值就可以了,没有其他含义
list.add(i);
}

int[] result = new int[10];
for(int i = 0;i<10;i++){
result[i] = list.remove(Math.abs(new Ra……


+1  这么不会出现重复的情况

#5


从集合类中随机取数据,将取到的数据放到set里面,放的时候判断集合大小是否大于十,大于就不放了。

#6


该回复于2012-05-08 08:34:00被版主删除