我有一个2d ArrayList
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
我想把这个项目说成(0,0)。
我正在寻找类似的东西:
list.get(0,0)
谢谢!
答案 0 :(得分:7)
您必须使用
list.get(0).get(0)
因为您没有使用真正的二维List
,而是List
Lists
。
答案 1 :(得分:5)
如下
String value = list.get(0).get(0);
答案 2 :(得分:4)
Java没有2d列表(或者数组)。使用这样的东西:
list.get(0).get(0)
请注意,数组有类似的问题。你不这样做:
array[0,0] // WRONG! This isn't Fortran!
相反,你这样做:
array[0][0]
答案 3 :(得分:1)
这是List的列表,你试试:
String val = list.get(0).get(0);
答案 4 :(得分:0)
这是一个遍历2D-ArrayList的程序。在此程序中,而不是 LineX ,您可以在列表中获取项目(i,j): - )
方案:的
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
答案 5 :(得分:0)
我们可以使用以下语法来满足我们的要求: arrIJ=arr.get(i).get(j);
我必须找到二维列表的对角线差,在这里我使用了上面的语法:
列表中对角差的代码:
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);
}