我需要使用ArrayList
,但我不知道如何做一些普通数组可以做的事情。
1)这个:
int[][] example1 = new int[10][20];
(具有两个参数 (10, 20) 的数组)可以使用普通数组,但如何使用ArrayList
.)
2)如何将列表中的 int 值增加 1,如下所示:
example2[3][4] ++;
我需要使用ArrayList
,但我不知道如何做一些普通数组可以做的事情。
1)这个:
int[][] example1 = new int[10][20];
(具有两个参数 (10, 20) 的数组)可以使用普通数组,但如何使用ArrayList
.)
2)如何将列表中的 int 值增加 1,如下所示:
example2[3][4] ++;
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
类是不可变的。
要使用集合模拟多维数组,您可以使用:
List<List<Integer>> list = new ArrayList<>(); //Java 7
List<List<Integer>> list = new ArrayList<List<Integer>>(); //Pre Java 7
因此,假设我们创建了一个List<List<Integer>>
外部列表包含List
10List<Integer>
而内部列表包含 10Integer
的地方。要在第四个列表中设置第五个元素:
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);
}
int[][] example1 = new int[10][20];
ArrayList<ArrayList<Integer>> ex = new ArrayList<ArrayList<Integer>>();
example2[3][4] ++;
int val = (a.get(0).get(0)) + 1;
与您的声明等效的ArrayList
是:
List<List<Integer>> example1 = new ArrayList<>();
您必须使用Integer
,因为 Java 集合不支持原始类型。查看Oracle 文档的此页面以获取有关自动装箱和拆箱的更多信息。
由于 anArrayList
可以动态增长,因此您无需指定大小。如果您希望它具有初始大小,可以将其作为参数传递给构造函数。
您可以使用将元素索引作为参数的方法从ArrayList
(或任何实现List
接口的类)中获取元素。get()
使用example.get()
onexample1
会给你一个类型的对象List
。然后,您可以再次使用get()
以获取Integer
.