2011-11-30 30 views
16

¿Cuál es la sintaxis para crear una lista de matrices en Java?Lista de matrices en Java

he intentado lo siguiente:

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

y un montón de otras cosas.

Necesito poder reordenar las matrices en línea, pero los elementos de las matrices en línea no necesitan ser cambiados. Si esto no es posible, ¿por qué?

Gracias.

+1

No se puede crear una 'Lista', ya que es una interfaz. ¿Desea una lista de arreglos, o está bien con la lista de listas? – birryree

+1

Estoy haciendo LinkedLists de LinkedLists en lugar de una solución usando int [] 's. Sin embargo, tienes razón acerca de no crear instancias de listas, lo pasé por alto cuando publiqué. Lo siento. – Chet

+1

Suena como un montón de sobrecarga. – Woot4Moo

Respuesta

39

En primer lugar, no se puede hacer new List(); es una interfaz.

Para hacer una lista de matrices int, hacer algo como esto:

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

P. S. Según el comentario, el paquete de lista es java.util.List y para ArrayList java.util.ArrayList

+1

El compilador me da esto: El tipo Lista no es genérico; no se puede parametrizar con argumentos Chet

+7

@Chet: Probablemente haya obtenido la importación incorrecta entonces - debería usar 'java.util.List', que ciertamente * es * genérico. –

+3

@Chet tendrá que importar java.util.List; así como java.util.ArrayList; para ejecutar el código que he escrito aquí. – gprathour

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

uso del objeto en lugar de lo primitivo, a menos que esto es antes de Java 1.5, ya que se encarga de la autoboxing automáticamente.

En cuanto a la clasificación va:

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

y para cada variedad (probablemente lo que quiere)

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

No es necesario usar 'Integer []' aquí en lugar de 'int []'. No puede usar tipos primitivos como argumentos de tipo, pero puede usar * arrays * de tipos primitivos. –

+1

En este sencillo ejemplo estoy seguro de que estoy de acuerdo. En un mundo ideal, la función tomaría esto: 'Colección ' y luego recuperar los valores que sean necesarios. – Woot4Moo

+3

No creo que tengamos * casi * suficiente información para que usted haga ese juicio, para ser honesto. –

3

List es una interfaz, no una clase. Tienes que elegir qué tipo de lista. En la mayoría de los casos, se elige una ArrayList.

List a = new ArrayList(); 

Ha mencionado que desea almacenar una matriz int en ella, para que pueda especificar el tipo que contiene una lista.

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

Mientras que usted puede tener una colección (como una lista) de "int []", no se puede tener una colección de "int". Esto se debe a que las matrices son objetos, pero una "int" es una primitiva.