java - 处理对数组中的数组进行洗牌
问题描述
我想对数组中的数组进行洗牌,但只有第一个数组
String[][] kaarten = { {"G", "T","1"},
{"G", "T","2"},
{"G", "T","3"},
//green triangle
{"R", "T","1"},
{"R", "T","2"},
{"R", "T","3"},
//red triangle
{"B", "T","1"},
{"B", "T","2"},
{"B", "T","3"},
//blue triangle
{"G", "O","1"},
{"G", "O","2"},
{"G", "O","3"},
//green Oval
{"R", "T","1"},
{"R", "T","2"},
{"R", "T","3"},
//Red Oval
{"B", "T","1"},
{"B", "T","2"},
{"B", "T","3"},
//Blue Oval
{"G", "S","1"},
{"G", "S","2"},
{"G", "S","3"},
//green Square
{"R", "T","1"},
{"R", "T","2"},
{"R", "T","3"},
//Red Square
{"B", "T","1"},
{"B", "T","2"},
{"B", "T","3"},
//Blue Square
};
所以{"G", "T", "1"}
需要保持不变。
我希望你能理解我所看到的,这有点难以解释。
解决方案
最简单的方法是创建一个列表String[]
并使用Collections.shuffle()
:
List<String[]> values = new ArrayList<>();
Collections.addAll(values, kaarten);
Collections.shuffle(values);
values.stream().map(Arrays::toString).forEach(System.out::println);
将显示values
在不修改内部的情况下随机重新排列String[]
:
[G, O, 3]
[R, T, 3]
[G, O, 2]
[R, T, 3]
[R, T, 1]
...
推荐阅读
- iframe - 减小 iframe 大小
- npm - 为什么 npm install 不构建依赖项?
- python - 使用条件过滤器对 pandas groupby 进行矢量化
- javascript - 如何使用 ionic cordova 应用程序加密设备上的本地表单数据
- ruby - 如何在 ruby 模块中使用 method_missing 创建动态方法
- javascript - 如何使用按钮隐藏表格行
- protocol-buffers - ProtoBuf 将 JSON 解组为时间戳
- sql - SQL Server 触发器将“false”替换为 null
- python - Keras model.predict 给 model.evalute 不同的结果
- javascript - 循环范围的 Json 小胡子:1 到 1000