java 如何调用二维数组列表上的.get()

inn6fuwd  于 2023-02-28  发布在  Java
关注(0)|答案(6)|浏览(199)

我有一个二维数组列表

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

我想在比如(0,0)处得到这个项目。
我在寻找类似这样的东西:

list.get(0,0)

谢谢!

u91tlkcl

u91tlkcl1#

您必须使用

list.get(0).get(0)

因为你使用的不是真实的二维List,而是ListsList

vecaoik1

vecaoik12#

Java没有2d列表(或数组),可以这样使用:

list.get(0).get(0)

请注意,数组也有类似的问题。您不这样做:

array[0,0]  // WRONG! This isn't Fortran!

相反,您可以执行以下操作:

array[0][0]
vmdwslir

vmdwslir3#

具体如下

String value = list.get(0).get(0);
gblwokeq

gblwokeq4#

这是一个遍历2D-ArrayList的程序。在这个程序中,您可以获取列表中的项(i,j):-),而不是LineX
PROGRAM:

Scanner scan = new Scanner(System.in);  
int no_of_rows = scan.nextInt();         //Number of rows 
int no_of_columns = scan.nextInt();      //Number of columns 
ArrayList<ArrayList<String>> list = new ArrayList<>();
for (int i = 0; i < no_of_rows; i++) {      
    list.add(new ArrayList<>());      //For every instance of row create an Arraylist
    for (int j = 0; j < no_of_columns; j++) {
        list.get(i).add(scan.next());        //Specify values for each indices
    }
}
//ArrayList Travesal
for (int i = 0; i < list.size(); i++) {
    for (int j = 0; j < list.get(i).size(); j++) {
        System.out.print(list.get(i).get(j)+" ");   //LineX
    }
    System.out.println();
}
  • 输出:*
2 3 
1 2 3 4 5 6 
1 2 3 
4 5 6
niwlg2el

niwlg2el5#

既然是名单中的名单,你试试看:

String val = list.get(0).get(0);
qojgxg4l

qojgxg4l6#

我们可以使用以下合成纤维来满足我们的要求:arrIJ=arr.得到(i).得到(j);
我必须找到2D列表的对角线差,这里我使用了上面的语法:
列表中对角线差代码:

public static int diagonalDifference(**List<List<Integer>> arr**) {
        int size=arr.size();
        int forwardDiagonal=0;
        int backwardDiagonal=0;
        
        for(int i=0;i<size;i++){
            for(int j=0;j<size;j++){
                if(i==j){
                    forwardDiagonal=forwardDiagonal+**arr.get(i).get(j)**;
                }
            }
        }
        
        for(int i=size-1;i>=0;i--){
            for(int j=0;j<size;j++){
                if(i+j==size-1){
                    backwardDiagonal=backwardDiagonal+**arr.get(i).get(j)**;
                }
            }
        }
        return Math.abs(forwardDiagonal-backwardDiagonal);

    }

相关问题