关于ArrayList的问题

时间:2013-09-10 09:42:34

标签: java

我需要使用ArrayList,但我不知道如何使用普通数组执行某些操作。

1)这个:

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

(具有两个参数(10,20)的数组)可以使用普通数组,但如何使用ArrayList进行操作。)

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

example2[3][4] ++;

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)

  1. int[][] example1 = new int[10][20];您可以使用以下语法在arraylist中执行此操作:
  2. ArrayList<ArrayList<Integer>> ex = new ArrayList<ArrayList<Integer>>();

    1. example2[3][4] ++;
      在arraylist中可以使用以下内容:
    2. 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