我有这段代码:
int[][] pattern = new int[][]{
{ 1, 1, 1, 1, 1, 1, 1 },
{ 1, 2, 0, 0, 0, 2, 1 },
{ 1, 0, 3, 0, 3, 0, 1 },
{ 1, 0, 0, 4, 0, 0, 1 },
{ 1, 0, 3, 0, 3, 0, 1 },
{ 1, 2, 0, 0, 0, 2, 1 },
{ 1, 1, 1, 1, 1, 1, 1 },
};
我需要将这个 2d 数组放入 2d ArrayList 中,这样我就可以通过添加行和列来移动模式来操纵它。例如,当我的方法要求移动 2 行和 2 列时,我将能够将模式移动到如下所示:
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
{ 0, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 0, 1, 2, 0, 0, 0, 2, 1 },
{ 0, 0, 1, 0, 3, 0, 3, 0, 1 },
{ 0, 0, 1, 0, 0, 4, 0, 0, 1 },
{ 0, 0, 1, 0, 3, 0, 3, 0, 1 },
{ 0, 0, 1, 2, 0, 0, 0, 2, 1 },
{ 0, 0, 1, 1, 1, 1, 1, 1, 1 },
我只是想将 2d 数组转换为 2d Arraylist 任何帮助将不胜感激!
最佳答案
Case 1 很短,但是需要根据需要将原始类型转换为引用类型(int
to Integer
)Arrays.asList();
Integer[][] pattern = new Integer[][]{
{ 1, 1, 1, 1, 1, 1, 1 },
{ 1, 2, 0, 0, 0, 2, 1 },
{ 1, 0, 3, 0, 3, 0, 1 },
{ 1, 0, 0, 4, 0, 0, 1 },
{ 1, 0, 3, 0, 3, 0, 1 },
{ 1, 2, 0, 0, 0, 2, 1 },
{ 1, 1, 1, 1, 1, 1, 1 },
};
List<List<Integer>> lists = new ArrayList<>();
for (Integer[] ints : pattern) {
lists.add(Arrays.asList(ints));
}
情况 2 如果您不想将原始类型转换为引用类型:(int[][] pattern = new int[][]
to Integer[][] pattern = new Integer[][]
)
List<List<Integer>> lists = new ArrayList<>();
for (int[] ints : pattern) {
List<Integer> list = new ArrayList<>();
for (int i : ints) {
list.add(i);
}
lists.add(list);
}
关于java - 将二维数组传输到二维 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762109/