Java实现随机点名若干名同学,且不能重复点名,并输出点过名的同学姓名。同学人数和姓名均从键盘输入。
时间: 2024-09-27 09:14:17 浏览: 38
在Java中,你可以使用ArrayList集合来存储所有学生的名字,然后通过Random类生成随机索引来选取学生,同时利用HashSet来保证不会重复选择。以下是简单的步骤和伪代码:
1. 首先,创建两个ArrayList,一个是所有学生列表(students),另一个用于记录已选学生(selected)。
```java
List<String> students = new ArrayList<>();
Set<String> selected = new HashSet<>();
```
2. 从键盘获取学生人数(numStudents)和每个学生的姓名,添加到students列表中。
```java
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生人数:");
int numStudents = scanner.nextInt();
for (int i = 0; i < numStudents; i++) {
System.out.print("请输入第" + (i+1) + "位同学的姓名:");
String name = scanner.next();
students.add(name);
}
```
3. 使用while循环,直到选取了所需的学生数。
```java
while (selected.size() < numStudents) {
int randomIndex = new Random().nextInt(students.size());
String randomName = students.get(randomIndex);
// 如果名字还未被选择,将其加入已选名单并移除
if (!selected.contains(randomName)) {
selected.add(randomName);
students.remove(randomName);
}
}
```
4. 输出点过名的学生姓名。
```java
System.out.println("点过名的学生有:");
for (String name : selected) {
System.out.println(name);
}
```
记得关闭Scanner:
```java
scanner.close();
```
阅读全文