java - 将二维数组传输到二维 ArrayList?

标签 java arrays arraylist

我有这段代码:

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/

相关文章:

java - 创建、更新和获取其余端点中的相同/不同 DTO 对象?

java - 没有语言注释的主页

arrays - 为什么str.next!在 Enumerable#map 中用相同的元素填充数组?

java - ArrayList 与 LinkedList 的随机访问和添加删除

java - 如何在java中获取任何文件的EOL字符

Java - 引用原始数据类型?

javascript - 检查字符串是否包含子字符串而不使用indexOf - Javascript

ruby - Ruby 中的渐进数组组合

java - 这个程序需要多个ArrayList吗?

android - 如何从android中的listview中的socket io检索数据