java改写程序,随机点名若干同学,且不能重复点名
时间: 2024-09-27 21:14:07 浏览: 49
在Java中,你可以通过创建一个包含学生姓名的数据结构,如ArrayList或HashSet,并使用Random类生成随机索引来实现这个功能。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Random;
class Student {
String name;
// 构造函数
public Student(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
'}';
}
}
public class RandomPointing {
private ArrayList<Student> students;
private Random random;
public RandomPointing(ArrayList<Student> students) {
this.students = students;
this.random = new Random();
}
public void pointStudents(int count) {
if (students.size() < count) {
System.out.println("Not enough students for the requested number of points.");
return;
}
ArrayList<String> pointedNames = new ArrayList<>();
while (pointedNames.size() < count) {
int index = random.nextInt(students.size());
String name = students.get(index).getName(); // 假设Student类有一个名为getName的方法获取名字
if (!pointedNames.contains(name)) {
pointedNames.add(name);
System.out.println(name + ", you're next!");
students.remove(index); // 从原始列表移除已点名的学生,防止重复
} else {
// 如果随机到重复的名字,重新选择
}
}
}
public static void main(String[] args) {
// 创建学生列表,例如
ArrayList<Student> studentList = new ArrayList<>();
studentList.add(new Student("Alice"));
studentList.add(new Student("Bob"));
// ... 更多学生 ...
RandomPointing pointer = new RandomPointing(studentList);
pointer.pointStudents(5);
}
}
```
在这个示例中,`pointStudents`方法会随机选择指定数量的同学,并确保不会重复点名。注意,为了简化,这里假设`Student`类有一个`getName()`方法来获取学生的姓名。实际应用中,你需要根据实际情况调整。
阅读全文