gpt4 book ai didi

Java - 打乱元素并输出特定数量

转载 作者:行者123 更新时间:2023-12-01 07:51:15 24 4
gpt4 key购买 nike

在 Java 中,我只是被告知使用此结构来打乱项目列表:

List<String> tasks = Arrays.asList("1","2","3","4","5","6","7","8");
Collections.shuffle(tasks);
for(String task : tasks){
System.out.println(task);
}

我的程序的这个解决方案的问题是我只想随机输出用户选择的多个元素(这意味着,如果用户只想要五个元素而不是所有八个元素,我只想要随机输出其中的五个元素输出)。我以前从未真正使用过 lambda 或那种形式的 forloop(我对 Java 完全陌生)。我知道如何使用数组,并且尝试为数组寻找随机播放选项,但一无所获。我也尝试过这个:

int num = console.nextInt();
List<String> tasks = Arrays.asList("1","2","3","4","5","6","7","8");
Collections.shuffle(tasks);
for(int i = 1; i <= num; i++){
String task = tasks;
System.out.println(task);
}

但显然,这种格式非常非常不正确(主要是因为我不知道这种格式是如何工作的)。如何对列表进行打乱并仅输出用户想要的元素数量?

注意:我没有 Java 8。

最佳答案

(随机地)打乱最初的 8 个元素,然后简单地返回该列表的子集,会有什么问题吗?考虑以下代码:

public class ListTest {
public static List<String> getRandomItems(int num) {
List<String> tasks = Arrays.asList("1","2","3","4","5","6","7","8");
Collections.shuffle(tasks);

return tasks.subList(0, num);
}

public static void main(String[] args) {
// take 5 random elements
List<String> randomList = getRandomItems(5);
for (String item : randomList) {
System.out.println("Found an item: " + item);
}
}
}

请注意,您采用原始 8 个元素的哪个子集并不重要,因为它们的顺序是随机的。相反,唯一重要的是您选择大小正确的子集。

关于Java - 打乱元素并输出特定数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37177544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com