我有这个方法生成一个包含81个int值的列表
int data[] = new int[10];
List lst=new ArrayList();
for(int j = 1; j < data.length; j++) {
for(int i = 1; i < data.length; i++) {
lst.add(i);
}
}
Collections.shuffle(lst);
System.out.println(lst);
我想将其转换为9 * 9数组。谁能帮我这个。我的输出看起来像这样
[6, 5, 6, 5, 3, 9, 8, 1, 7, 7, 3, 4, 6, 6, 1, 5, 8, 4, 9, 9, 7, 9, 3, 3, 8, 5, 6, 9, 8, 2, 8, 5, 6, 4, 3, 4, 1, 8, 3, 5, 4, 1, 9, 6, 8, 2, 7, 1, 7, 8, 7, 8, 2, 9, 2, 1, 4, 9, 7, 7, 3, 5, 1, 2, 6, 7, 3, 5, 6, 4, 4, 2, 4, 2, 3, 9, 2, 1, 2, 1, 5]
答案 0 :(得分:1)
我不确定这是不是你想做的事(告诉我,如果这不是)。
我用二维数组重写了for循环。这样,lst就变成了一个9 * 9阵列。
public static void main(String[] args) {
int data[] = new int[10];
List<ArrayList<Integer>> lst = new ArrayList<ArrayList<Integer>>(9);
for (int j = 0; j < data.length - 1; j++) {
lst.add(new ArrayList<Integer>());
for (int i = 0; i < data.length - 1; i++) {
lst.get(j).add(i);
}
}
// shuffle can only process 1-dimension array
for (int j = 0; j < data.length - 1; j++) {
Collections.shuffle(lst.get(j));
}
// display the result in a 2-dimensional array format
for (int j = 0; j < data.length - 1; j++) {
for (int i = 0; i < data.length - 1; i++) {
System.out.print(lst.get(j).get(i) + ", ");
}
System.out.println("");
}
}
这是程序的输出:
8, 3, 7, 2, 1, 5, 6, 4, 0,
4, 8, 6, 0, 7, 1, 5, 3, 2,
6, 3, 8, 1, 7, 4, 0, 2, 5,
6, 3, 1, 4, 8, 2, 7, 0, 5,
1, 7, 4, 3, 6, 2, 5, 8, 0,
1, 5, 3, 4, 2, 8, 7, 0, 6,
1, 7, 3, 0, 5, 4, 6, 8, 2,
0, 8, 6, 2, 3, 7, 4, 1, 5,
8, 2, 1, 6, 3, 4, 5, 0, 7,
答案 1 :(得分:1)
试试这段代码
int data[] = new int[10];
List lst=new ArrayList();
for(int j = 1; j < data.length; j++) {
List range=new ArrayList();
for(int i = 1; i < data.length; i++) {
range.add(i);
}
Collections.shuffle(range);
lst.add(range); }
string result =lst.toString().replace(",", "");
System.out.println(result);