我需要使用ArrayList
,但我不知道如何使用普通数组执行某些操作。
1)这个:
int[][] example1 = new int[10][20];
(具有两个参数(10,20)的数组)可以使用普通数组,但如何使用ArrayList
进行操作。)
2)如何将列表中的int值增加1,如下所示:
example2[3][4] ++;
答案 0 :(得分:7)
ArrayList
是由数组支持的动态可增长列表。
List<List<Integer>> list = new ArrayList<List<>>(10);
您可以按List#get
获取列表元素。
List<Integer> innerList = list.get(3);
Integer integer = innerList.get(4);
按List#set
-
list.get(3).set(4,list.get(3).get(4)++);
注意:Integer
类是不可变的。
答案 1 :(得分:1)
使用您将使用的集合来模仿多维数组:
List<List<Integer>> list = new ArrayList<>(); //Java 7
List<List<Integer>> list = new ArrayList<List<Integer>>(); //Pre Java 7
因此,我们假设我们创建了一个List<List<Integer>>
,其中外List
包含10 List<Integer>
,内部列表包含10 Integer
s。要在第四个列表中设置第五个元素:
public static void main(String[] args) {
List<List<Integer>> outer = new ArrayList<List<Integer>>();
for(int x = 0; x < 10; x++){
List<Integer> inner = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
outer.add(inner);
}
//Remember that Integer is immutable
outer.get(3).set(4, new Integer(outer.get(3).get(4)) + 1);
}
答案 2 :(得分:0)
int[][] example1 = new int[10][20];
您可以使用以下语法在arraylist中执行此操作: ArrayList<ArrayList<Integer>> ex = new ArrayList<ArrayList<Integer>>();
example2[3][4] ++;
int val = (a.get(0).get(0)) + 1;
答案 3 :(得分:0)
与ArrayList
的声明相当于:
List<List<Integer>> example1 = new ArrayList<>();
您必须使用Integer
,因为Java Collections不支持基本类型。有关Autoboxing和Unboxing的更多信息,请查看this page of the Oracle docs。
由于ArrayList
可以动态增长,因此您无需提供大小。如果您希望它具有初始大小,则可以将其作为参数传递给构造函数。
您可以使用ArrayList
方法从元素的索引作为参数来获取List
(或任何实现get()
接口的类)中的元素。
在example.get()
上使用example1
会为您提供List
类型的对象。然后,您可以再次使用get()
获取Integer
。