方式一:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Test1 {
public static void main(String[] args) {
String[] str={"科特迪瓦","阿根廷","澳大利亚","塞尔维亚","荷兰","尼日利亚","日本",
"美国","中国","新西兰","巴西","比利时","韩国","喀麦隆","洪都拉斯","意大利"};
List list=new ArrayList();
List list1=new ArrayList();
for(int i=0;i<str.length;i++){
list.add(str[i]);
}
while(true){
list1.clear();
while (true) {
Random random = new Random();
int index = random.nextInt(list.size());
Object s = list.get(index);
list1.add(s);
list.remove(index);
if (list1.size() == 4) {
for (Object o : list1) {
System.out.print(o + " ");
}
break;
}
}
System.out.println();
if (list.size() == 0) {
break;
}
}
}
}
方式二:
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
String [] str = {"科特迪瓦","阿根廷","澳大利亚","塞尔维亚","荷兰","尼日利亚","日本",
"美国","中国","新西兰","巴西","比利时","韩国","喀麦隆","洪都拉斯","意大利"};
for(int i=0;i<str.length;i++) {
list1.add(str[i]);
}
while(true) {
//将l2清零
list2.clear();
while(true) {
//产生0-最大下标的随机数
int a = (int)(Math.random()*list1.size());
//拿l中出来一个字符串
String s =list1.get(a);
//把这个字符串放进l2中
list2.add(s);
//把这个字符串从l移除
list1.remove(a);
//当l2等于4的时候打印这4个字符串,跳出循环
if(list2.size()==4) {
for(String s2:list2) {
System.out.print(s2+" ");
}
break;
}
}
System.out.println();
//当l中元素拿完的时候跳出循环
if(list1.size()==0) {
break;
}
}
}
}