2011-11-30 22 views
16

Qual è la sintassi per creare un elenco di matrici in Java?Elenco di matrici in Java

Ho provato quanto segue:

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

e un sacco di altre cose.

Devo essere in grado di riordinare gli array int, ma non è necessario modificare gli elementi degli array int. Se questo non è possibile, perché?

Grazie.

+1

Non è possibile creare un'istanza di un 'Elenco', poiché si tratta di un'interfaccia. Vuoi una lista di array o stai bene con la lista delle liste? – birryree

+1

Sto facendo LinkedList di LinkedLists al posto di una soluzione usando int [] 's. Hai ragione sul non istanziare le liste però, ho trascurato che quando ho postato. Scusate. – Chet

+1

Sembra un sovraccarico. – Woot4Moo

risposta

39

In primo luogo, non è possibile fare new List(); è un'interfaccia.

di fare una lista di int Array, fare qualcosa di simile:

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

P.S. Come per il commento, pacchetto per List è java.util.List e per ArrayList java.util.ArrayList

+1

Il compilatore mi dà questo: l'elenco dei tipi non è generico; non può essere parametrizzato con argomenti Chet

+7

@Chet: Probabilmente hai ottenuto un'importazione errata - dovresti usare 'java.util.List', che certamente * è * generico. –

+3

@Chet sarà necessario importare java.util.List; così come java.util.ArrayList; per aver eseguito il codice che ho scritto qui. – gprathour

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

Utilizzare l'oggetto al posto del primitivo, a meno che questo è prima di Java 1.5 come gestisce automaticamente il autoboxing.

Per quanto riguarda l'ordinamento va:

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

e per ogni array (probabilmente quello che volete)

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

Non c'è bisogno di usare 'Integer []' qui invece di 'int []'. Non è possibile utilizzare i tipi primitivi come argomenti di tipo, ma è possibile utilizzare * matrici * di tipi primitivi. –

+1

In questo semplice esempio sono sicuro che sarei d'accordo. In un mondo ideale la funzione prenderebbe questo: 'Collezione ' e quindi recuperare i valori come necessario. – Woot4Moo

+3

Non penso che abbiamo * quasi * abbastanza informazioni per voi per fare quel giudizio, per essere onesti. –

3

List è un'interfaccia, non una classe. Devi scegliere che tipo di lista. Nella maggior parte dei casi viene scelto un ArrayList.

Si è detto che si desidera memorizzare un array int in esso, in modo da poter specificare il tipo che contiene un elenco.

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

Mentre è possibile avere una collezione (ad esempio un elenco) di "int []", non si può avere una collezione di "int". Questo perché gli array sono oggetti, ma un "int" è un primitivo.