问题描述
我有这段代码:
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列时,我将能够将模式移动到如下所示:
I need to get this 2d array into a 2d ArrayList so i can manipulate it by adding rows and columns to move the pattern around. For example when my method calls for a shift of 2 rows and 2 columns i will be able to move the pattern to something like this:
{ 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中,因此不胜感激!
I'm just looking to get the 2d array into a 2d Arraylist any help will be greatly appreciated!
推荐答案
案例1 简短,但需要将基本类型隐式引用为引用类型(int
到Integer
),例如Arrays.asList();
Case 1 It is short, but need to covert the primitive type to reference type (int
to Integer
) as needed for 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[][]
至Integer[][] pattern = new Integer[][]
)
Case 2 If you don't want to covert the primitive type to reference type: (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);
}
这篇关于将二维数组传输到二维ArrayList吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!