2011-11-30 49 views
16

在Java中制作数组列表的语法是什么?Java中的数组列表

我曾尝试以下:

List<int[]> A = new List<int[]>(); 

和很多其他的事情。

我需要能够重新排列int数组,但是int数组的元素不需要改变。如果这不可能,为什么?

谢谢。

+1

你不能实例化一个'List',因为它是一个接口。你想要数组列表,还是你用列表清单? – birryree

+1

我正在做LinkedLists LinkedLists来代替使用int []的解决方案。尽管你没有实例化列表是正确的,但是当我发布时,我忽略了这一点。抱歉。 – Chet

+1

听起来像很多开销。 – Woot4Moo

回答

39

首先,你不能这样做new List();它是一个接口。

为了使INT阵列的列表,这样做:

List<int[]> myList = new ArrayList<int[]>(); 

附:按照注释,包列表是java.util.List和ArrayList的java.util.ArrayList

+1

编译器给我这个:类型列表不是通用的;它不能用参数参数化 Chet

+7

@Chet:你可能得到了错误的导入,那么你应该使用'java.util.List',它肯定是* generic。 –

+3

@Chet你将需要导入java.util.List;以及java.util.ArrayList;用于运行我在这里写的代码。 – gprathour

6
List<Integer[]> integerList = new ArrayList<Integer[]>(); 

使用对象,而不是原始的,除非它自动处理自动装箱,这是Java 1.5的之前。

至于排序的时候:

Collections.sort(integerList); //Sort the entire List 

,并为每个阵列(您想大概是什么)

for(Integer[] currentArray : integerList) 
{ 
    Arrays.sort(currentArray); 
} 
+6

这里不需要使用'Integer []'而不是'int []'。您不能将基本类型用作类型参数,但可以使用基本类型的*数组*。 –

+1

在这个简单的例子中,我确定我会同意。在理想的世界里,函数会采用这个:'Collection ',然后根据需要检索值。 – Woot4Moo

+3

老实说,我认为我们没有足够的信息让你作出判断。 –

3

列表是一个接口,而不是一类。你必须选择什么样的列表。在大多数情况下,选择ArrayList。

List a = new ArrayList(); 

你已经提到过你想存储一个int数组,所以你可以指定一个列表包含的类型。您可以拥有“int []”的集合(如列表),但不能拥有“int”的集合。这是因为数组是对象,但“int”是一个基元。