0

我需要使用ArrayList,但我不知道如何做一些普通数组可以做的事情。

1)这个:

int[][] example1 = new int[10][20];

(具有两个参数 (10, 20) 的数组)可以使用普通数组,但如何使用ArrayList.)

2)如何将列表中的 int 值增加 1,如下所示:

example2[3][4] ++;
4

4 回答 4

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类是不可变的。

于 2013-09-10T09:43:21.390 回答
1

要使用集合模拟多维数组,您可以使用:

List<List<Integer>> list = new ArrayList<>(); //Java 7

List<List<Integer>> list = new ArrayList<List<Integer>>(); //Pre Java 7

因此,假设我们创建了一个List<List<Integer>>外部列表包含List10List<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);
}
于 2013-09-10T09:45:12.167 回答
0
  1. int[][] example1 = new int[10][20];
    您可以使用以下语法在 arraylist 中执行此操作:

ArrayList<ArrayList<Integer>> ex = new ArrayList<ArrayList<Integer>>();

  1. example2[3][4] ++;
    这在 arraylist 中可以与使用 this 相同:

int val = (a.get(0).get(0)) + 1;

于 2013-09-10T09:48:04.513 回答
0

与您的声明等效的ArrayList是:

List<List<Integer>> example1 = new ArrayList<>();

您必须使用Integer,因为 Java 集合不支持原始类型。查看Oracle 文档的此页面以获取有关自动装箱和拆箱的更多信息。

由于 anArrayList可以动态增长,因此您无需指定大小。如果您希望它具有初始大小,可以将其作为参数传递给构造函数。

您可以使用将元素索引作为参数的方法从ArrayList(或任何实现List接口的类)中获取元素。get()

使用example.get()onexample1会给你一个类型的对象List。然后,您可以再次使用get()以获取Integer.

于 2013-09-10T09:48:17.927 回答