Collections.shuffle(names);什么意思
时间: 2024-06-04 18:07:12 浏览: 12
Collections.shuffle(names) 是一个 Java 语言中的方法调用,它的作用是将一个列表(List)中的元素随机打乱顺序。其中,names 是一个 List 类型的对象,它包含了需要打乱顺序的元素。调用这个方法后,names 中的元素顺序将会被随机打乱,每次打乱的结果都可能不同。
相关问题
import java.util.*; public class Task { public static void main(String[] args) { List<String> names = new ArrayList<>(Arrays.asList(args)); Collections.addAll(names, "John", "Kate", "Tom", "Bob", "Alice"); // 排序---------------------------------------------- /* TODO 对names集合进行排序 */ Collections.sort(names); System.out.println(names); // 打乱----------------------------------------------- Random random = new Random(names.size()); /* TODO 使用random打乱names集合 */ System.out.println(names); } }
对names集合进行排序的代码如下:
Collections.sort(names);
使用random打乱names集合的代码如下:
Collections.shuffle(names, random);
将姓名存入数组中进行抽奖,在开始抽奖时姓名会滚动,用Java实现
以下是使用Java实现将姓名存入数组并进行抽奖,在开始抽奖时姓名滚动的示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class NameLottery {
public static void main(String[] args) throws InterruptedException {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.add("David");
names.add("Eve");
names.add("Frank");
rollNames(names);
drawWinner(names);
}
public static void rollNames(List<String> names) throws InterruptedException {
Collections.shuffle(names);
for (int i = 0; i < 10; i++) {
for (String name : names) {
System.out.println(name);
Thread.sleep(100);
clearConsole();
}
}
}
public static void drawWinner(List<String> names) {
Collections.shuffle(names);
String winner = names.get(0);
System.out.println("抽奖结果:恭喜 " + winner + " 获奖!");
}
public static void clearConsole() {
try {
final String os = System.getProperty("os.name");
if (os.contains("Windows")) {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
} else {
System.out.print("\033[H\033[2J");
System.out.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这段代码使用了`List`集合来存储姓名,并通过`Collections.shuffle`方法进行随机打乱。然后,`rollNames`方法模拟了姓名滚动的效果,使用嵌套循环遍历每个姓名,并通过`Thread.sleep`方法暂停一段时间来实现滚动效果。`drawWinner`方法随机选择一个获奖者,并打印抽奖结果。`clearConsole`方法用于清除控制台输出,以便在滚动姓名时实现清屏效果。
你可以根据需要修改姓名列表和滚动效果的时间间隔。请确保你的Java环境已正确配置,并且可以运行Java程序。