如何使用arraylist JAVA从矩阵中获取值

时间:2016-07-16 09:22:12

标签: java matrix arraylist

我有这个矩阵:

A  B  C  D  E  
0  0  0  1  0 -> index 0 in arrList  
0  0  1  1  0 -> index 1 in arrList   
0  0  1  0  0 -> index 2 in arrList   
1  0  1  0  0 -> index 3 in arrList 

所以在ArrayList中,arrList包含: [[0,0,0,1,0],[0,0,1,1,0],[0,0,1,0,0],[ 1,0,1,0,0]]

如何从JAVA中的arrList获取A,B,C,D和E列中的值以获取作为示例输出?

Example output:   
A: [0,0,0,1]  
B: [0,0,0,0]  
C: [0,1,1,1]  
D: [1,1,0,0]  
E: [0,0,0,0]

请帮忙。谢谢。

5 个答案:

答案 0 :(得分:1)

花式Java 8解决方案

import java.util.List;
import java.util.stream.IntStream;

import static java.lang.System.lineSeparator;
import static java.util.Arrays.asList;
import static java.util.stream.Collectors.joining;

public class Example {
    public static void main(String[] args) {
        List<List<Integer>> matrix = asList(
                asList(0, 0, 0, 1),
                asList(0, 0, 0, 0),
                asList(0, 1, 1, 1),
                asList(1, 1, 0, 0),
                asList(0, 0, 0, 0)
        );
        System.out.println("Example output:");
        System.out.println(IntStream.range(0, matrix.size())
                .mapToObj(i -> (char) ('A' + i) + ": [" + matrix.get(i)
                        .stream()
                        .map(String::valueOf)
                        .collect(joining(", "))
                        + "]"
                )
                .collect(joining(lineSeparator())));
    }
}

输出

Example output:
A: [0, 0, 0, 1]
B: [0, 0, 0, 0]
C: [0, 1, 1, 1]
D: [1, 1, 0, 0]
E: [0, 0, 0, 0]

作为一个大单行,因为为什么不

System.out.println(((Function<List<List<Integer>>, String>) (matrix -> "Example output: " + lineSeparator() + range(0, matrix.size()).mapToObj(i -> (char) ('A' + i) + ": [" + matrix.get(i).stream().map(String::valueOf).collect(joining(", ")) + "]").collect(joining(lineSeparator())))).apply(asList(asList(0, 0, 0, 1), asList(0, 0, 0, 0), asList(0, 1, 1, 1), asList(1, 1, 0, 0), asList(0, 0, 0, 0))));
// extra space for scroll

答案 1 :(得分:0)

如果这是Arrays的ArrayList,请使用:

for(int i=0;i<arrList.size();i++)
{
    for(int j=0;j<arrList.get(i).length;j++)
    {
        System.out.print(arrList.get(i)[j]+" ");
    }
    System.out.printlm("");//To skip line
}

如果你的意思是使用数组:

for(int i=0;i<arrList.length;i++)
{
    for(int j=0;j<arrList[i].length;j++)
    {
        System.out.print(arrList[i][j]+" ");
    }
    System.out.println("");//To skip line
}

答案 2 :(得分:0)

for(int row = 0; row < 4; row++){
    for(int col = 0; col < 5; col++){
        System.out.print(arrList[col][row]);
    }
    System.out.println();
}

这将为您提供所需的输出。

P.S。:在代码中进行编辑以获得您想要的格式的输出。

答案 3 :(得分:0)

for(List<Integer> row : arrList) {
    for(int col : row) {
       System.out.print(col + " ");
    }
    System.out.println();
}

希望这适合你。你也可以做一些映射,以便有A,B,C。并添加aditional格式。

干杯。

答案 4 :(得分:-1)

System.out.println(arrList.get(1).get(4)+" "); System.out.println(arrList.get(i).get(j)+" ");