public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("qw");
list.add("sw");
list.add("ww");
list.add("ww");
list.add("sss");
list.add("ffs");
list.add("gbs");
Set<String> set = new HashSet<String>();
// 抽取m个
int m = 2;
for (int j = 0; j < m; j++) {
int n = (int) (Math.random() * list.size());
System.out.println(n);
set.add(list.get(n));
}
//判断set集合长度,如果是不够m个,继续抽取。。。
List<String> list2 = new ArrayList<String>();
Iterator<String> it = set.iterator();
for(;it.hasNext();){
list2.add(it.next().toString());
}
System.out.println(list2);
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class one {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
int number=0;
//向集合中添加20个数
for(int i =20;i<=40;i++){
list.add(i);
}
//定义一个boolean类型的数组,如果list中的数被取出,则对应的Boolean值变为true
boolean[] ok = new boolean[list.size()];
while(true){
System.out.print("请输入要随机抽取的个数:");
Scanner sc = new Scanner(System.in);
number = sc.nextInt();
if(number>=1&&number<=20){
break;
}
System.out.println("你输入的有误,请重新输入!");
}
//定义存放取到的数的集合
List<Integer> list1 = new ArrayList<Integer>();
//取出数据
for(int i=0;i<number;i++){
int num ;
do{
num = (int)(Math.random()*list.size());
}while(ok[num]);
list1.add(list.get(num));
ok[num]=true;
}
System.out.println(list1);
}
}