Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的矩阵转置(将矩阵存储在ArrayList中)_Java - Fatal编程技术网

Java中的矩阵转置(将矩阵存储在ArrayList中)

Java中的矩阵转置(将矩阵存储在ArrayList中),java,Java,我正在写一个程序,转换给定的矩阵 sample input: 1 2 3 4 5 6 7 8 9 8 0 2 sample output: 1 5 9 2 6 8 3 7 0 4 8 2 我的问题是如何将输入存储在多维ArrayList中,如下所示: [[1,2,3,4],[5,6,7,8],[9,8,0,2]]您可以将输入存储在所需的多维列表中,如下所示: List<List<Integer>>list = Arrays.asList(Arrays.asList(1

我正在写一个程序,转换给定的矩阵

sample input:
1 2 3 4
5 6 7 8
9 8 0 2

sample output:
1 5 9
2 6 8
3 7 0
4 8 2
我的问题是如何将输入存储在多维ArrayList中,如下所示:
[[1,2,3,4],[5,6,7,8],[9,8,0,2]]

您可以将输入存储在所需的多维列表中,如下所示:

List<List<Integer>>list = Arrays.asList(Arrays.asList(1, 2, 3, 4), Arrays.asList(5, 6, 7, 8), Arrays.asList(9, 8, 0, 2));
然后,您可以应用转置逻辑并将输出存储在新的列表中

如果您正在从控制台获取输入,可以执行以下操作:

List<List<Integer>> list = new ArrayList<>();
int n = 3;
while (n-- > 0) {
    List<Integer> collect = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
    list.add(collect);
}

这里还请注意,这是Java 8语法。

您想要嵌套列表还是像int[][]这样的数组?只要我可以像引用矩阵一样引用其中任何一个都可以。输入来自用户,我无法手动存储矩阵。我怎样才能以一种对用户抛出的任何输入都有效的方式存储它呢?这种方法仍然有效。另外,您应该在问题中提供所有必要的详细信息和代码,以避免反复出现这种情况。@Scoopy_Xavier编辑了这篇文章,假设您知道输入控制台中的行数。br做了什么。在您的代码中表示?br是BufferedReader,输入取自控制台