2017-07-27 60 views
0

我需要建立一个ArrayListInteger在新的Array s在它。我如何设置和添加项目?Arraylist内阵列

private final ArrayList<Integer>[] test; 

test = new ArrayList<Integer>(); 

这是行不通的。
谢谢!

+0

你可以请详细说明你的意思是什么 - 的ArrayList整数在新的数组呢? – ayush

+0

'测试'Arraylist的元素又是一个整数的数组..你正在说什么? – ayush

+0

我想设置一个数组列表,并且数组列表中的对象是具有整数的数组。我不知道如何设置这个Arraylist。一个正常的ArrayList不是一个问题。那么我怎么能初始化ArrayList,然后添加Integer数组? – valenth

回答

0

看起来像你想创建一个2 dimansional整数数组。

我假设你有一个特殊的用例,在这个用例中你需要一个基本数组obobarList-Objects。

不管怎么说,你可以创建像任何其他原始阵列 这样的事情像

ArrayList<Integer>[] test = new ArrayList[2]; 

和接入/按索引设置..

test[0] = new ArrayList<Integer>(); 

您也可以填写在初始化数组...

ArrayList<Integer>[] test = new ArrayList[] { 
     new ArrayList<Integer>(), 
     new ArrayList<Integer>(), 
     new ArrayList<Integer>() 
}; 
0

如果我们想ArraysList然后 -

class Test { 

    private final List<int[]> myList; 

    public Test() { 
     myList = new ArrayList<>(); 
    } 

    public void add(int[] myArray) { 
    myList.add(myArray); 
    } 
} 

你总是允许初始化最终的变数。编译器确保你只能做一次。

+0

它是不允许更改私人“最终ArrayList []测试;”,所以我必须建立它与这些规范。只需要知道如何初始化这些。谢谢 – valenth

+0

你可以初始化最后一个变量.. – ayush

+1

检查修改后的答案once..also我想你应该阅读关于java中的final关键字。 – ayush

2

数组是一个Object,你可以做任何对象类型名单 - 这样就可以使阵列的List没有做什么特别的东西:

// Declare it and initialise as an empty list 
List<Integer[]> list = new ArrayList<>(); 

// Add an item -- it's a new array 
list.add(new Integer[5]); 

// Access an item -- it's an array 
Integer[] array = list.get(0); 
Integer x = array[0]; 

我看到使用的阵列几个原因然而,在大多数情况下,我们需要使用Integer。一组int也是Object,所以你可以使用它。

List<int[]> list = new ArrayList<>(); 
list.add(new int[5]); 

一个使用对象Integer,而不是原始int最常见的原因是,你不能有List小号原语。但你可以有原始数组,所以如果你对数组较小的表达力量感到满意,通过所有的方式来填充原语。

问自己,为什么你想要的阵列,而不是ListList一个S,数组的数组或List秒的阵列的List,但是。你的问题要求“数组列表中的数组”。

List<Integer[]>是数组列表(因为在<>内部是Integer[])。

List<Integer>[]是一个列表数组 - “阵列内的ArrayList” - 因为[]List<>声明之后。

您可以初始化你的列表的阵列,就像任何其他数组,new Type[length]

// Declare it 
List<Integer>[] array = new List<Integer>[5]; 

// Put something into an array element 
array[3] = new ArrayList<Integer>(); 

// Access an element -- it's a List 
List<Integer> list = array[3]; 
Integer x = list.get(0); 
+0

嗨,我不允许改变这段代码:private final ArrayList [] test; - >那么你能初始化这段代码吗? ArrayList和[]在钻石算子之外。在你的代码中,[]在钻石操作员中。 – valenth

+0

valenth - 'ArrayList []'是列表数组,而不是数组列表。将添加一些答案。 – slim

0

u可以使用这样做到这一点的

private ArrayList<Integer>[] test ; 

private void test(int n){ 
    test=new ArrayList[n]; 
    for(int i=0;i<n;i++){ 
     test[i]=new ArrayList<Integer>(); 

     test[i].add(100); 
     test[i].add(10); 
     test[i].add(10000); 
     test[i].add(1); 
     .... 
    } 
}