java给自己班级定义一个随机点名方法randomCall()。想想办法如何不让它重复点名。
时间: 2024-09-19 10:15:40 浏览: 36
在Java中,为了创建一个随机点名方法并且避免重复,我们可以使用`ArrayList`存储学生的姓名,并使用`Random`类生成随机索引来选取学生。每次点名后,可以从列表中移除该学生的姓名,以保证下次不会再次点到。以下是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Random;
class Student {
String name;
// 构造函数和 getter/setter省略...
}
class ClassRoom {
private ArrayList<Student> students;
private Random random;
public ClassRoom(ArrayList<Student> students) {
this.students = students;
this.random = new Random();
}
public void randomCall() {
if (students.isEmpty()) {
System.out.println("班级里没有人了!");
return;
}
int index = random.nextInt(students.size()); // 随机选择一个学生索引
Student selectedStudent = students.get(index);
// 移除选中的学生,防止重复
students.remove(index);
System.out.println("本次点名的是:" + selectedStudent.name);
}
}
// 使用示例
public static void main(String[] args) {
ArrayList<Student> studentsList = new ArrayList<>();
// 假设你已经有了一个包含学生信息的列表
for (Student student : ... /* 初始化学生列表 */) {
studentsList.add(student);
}
ClassRoom classroom = new ClassRoom(studentsList);
while (/* 运行条件 */) {
classroom.randomCall();
}
}
```