gpt4 book ai didi

c# - 我可以随机而不是按顺序迭代 for 循环吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:36 25 4
gpt4 key购买 nike

如果有这样的for循环

for ( int i = 0; i <= 10; i++ )
{
//block of code
}

我想要实现的是,在第一次迭代之后,我的值不需要是 1,它可以是 1 到 10 之间的任何值,我不应该再次为 0,对于其他迭代也是如此。

最佳答案

简单算法:

  • 创建一个包含从 0 到 10 的数字的数组
  • 洗牌
  • 遍历该数组并检索初始集合中的相应索引

在 Java 中:

public static void main(String[] args) throws Exception {
List<Integer> random = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Collections.shuffle(random);

List<String> someList = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k");

for (int i : random) {
System.out.print(someList.get(i));
}
}

输出:

ihfejkcadbg

编辑

既然我重读了它,您也可以简单地洗牌初始集合和循环:

public static void main(String[] args) throws Exception {
List<String> someList = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");

//make a copy if you want the initial collection intact
List<String> random = new ArrayList<> (someList);
Collections.shuffle(random);

for (String s : random) {
System.out.print(s);
}
}

关于c# - 我可以随机而不是按顺序迭代 for 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276943/

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