java从list随机取一定比例数据,直到不重复取完,代码可以帮提供不?
时间: 2023-03-20 16:02:51 浏览: 81
你可以参考这段代码:
List list=new ArrayList();
Random random=new Random();
while(list.size()<n){
int index=random.nextInt(list.size());
if(!list.contains(list.get(index))){
list.add(list.get(index));
}
}
相关问题
java从lsit中随机取10条数据,不能重复
您可以使用Java中的Collections.shuffle()方法来随机化列表中的元素,并使用subList()方法来获取列表的前10个元素,以满足您的需求。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RandomList {
public static void main(String[] args) {
List<Integer> mylist = new ArrayList<>();
mylist.add(1);
mylist.add(2);
mylist.add(3);
mylist.add(4);
mylist.add(5);
mylist.add(6);
mylist.add(7);
mylist.add(8);
mylist.add(9);
mylist.add(10);
mylist.add(11);
mylist.add(12);
mylist.add(13);
mylist.add(14);
mylist.add(15);
Collections.shuffle(mylist);
List<Integer> randomItems = mylist.subList(0, 10);
System.out.println(randomItems);
}
}
```
首先,我们创建了一个包含15个整数的列表mylist。然后,我们调用Collections.shuffle()方法来随机化列表中的元素。最后,我们使用subList()方法来获取列表的前10个元素,并将它们存储在randomItems变量中。最后,我们打印出随机选择的10个元素。请注意,这样可以确保选出的10个数字不重复。
java 从1~30之间随机抽取9个不重复的数字。
好的,以下是 Java 的实现方式:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomNumbers {
public static void main(String[] args) {
List<Integer> nums = new ArrayList<>();
Random random = new Random();
while (nums.size() < 9) {
int num = random.nextInt(30) + 1;
if (!nums.contains(num)) {
nums.add(num);
}
}
System.out.println(nums);
}
}
```
这个程序使用了一个 List 来存储随机生成的数字,然后用 while 循环生成随机数并判断是否已经存在于 List 中,如果不存在则加入 List 中,直到 List 中有9个数字为止。最后输出 List 即可。
希望这个程序能够帮到您!