在完成这个程序之前首先要知道Scanner,Random和ArrayList是什么
(1)Scnner类是用于扫描输入文本的新的实用程序可以在程序中实现键盘输入
(2)Random类是一个随机数发生器用于生成随机数
(3)ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,可以随着元素的增加而增长,内部封装了丰富的增删改查功能,我们可以添加或删除元素
方法步骤:
1使用Arrays把数据转换成集合,这是一个固定数组形式
List<String> sp=Arrays.asList("张三","李四","王五","赵六","赵七","赵八");
2.通过构造方法创建名单集合,把sp集合中的元素一一取出放入arr集合中
ArrayList<String> arr=new ArrayList<>(sp);
3. 使用Random随机一个集合索引,根据索引获取集合元素
Random random=new Random();
具体步骤代码如下:
package javaTest.op;
import java.util.*;
public class ArrayListTest {
public static void main(String[] args) {
//通过使用SCanner,Random和ArrayList完成一个不重复的点名程序
//使用Arrays把数据转换成集合,这是一个固定数组形式
List<String> sp=Arrays.asList("张三","李四","王五","赵六","赵七","赵八");
//通过构造方法创建名单集合,把sp集合中的元素一一取出放入arr集合中
ArrayList<String> arr=new ArrayList<>(sp);
//怎么在集合中随机点名?
//使用Random随机一个集合索引,根据索引获取集合元素
Random random=new Random();
Scanner sc=new Scanner(System.in);
while (true){
//如果集合为空结束循环
if (arr.size()==0){
System.out.println("点名结束");
break;
}
System.out.println("请输入h/H");
//获取从键盘输入的值
String op= sc.next();
if (op.equals("H")||op.equals("h")){
int index=random.nextInt(arr.size());//随机产生集合范围内的一个值。
String name= arr.get(index);//根据索引获取对应位置的元素
System.out.println(name+"---------"+"主角在此");
arr.remove(index);
}else {
System.out.println("点名结束");
break;
}
}
}
}