Sto lavorando su una classe di matrice sparsa che richiede per utilizzare un array di LinkedList
per memorizzare i valori di una matrice. Ogni elemento dell'array (ad esempio, ogni LinkedList
) rappresenta una riga della matrice. Inoltre, ogni elemento nell'array LinkedList
rappresenta una colonna e il valore memorizzato.Non è possibile creare un array di LinkedList in Java ...?
Nella mia classe, ho una dichiarazione della matrice come:
private LinkedList<IntegerNode>[] myMatrix;
E, a mio costruttore per la SparseMatrix
, cerco di definire:
myMatrix = new LinkedList<IntegerNode>[numRows];
L'errore finisco ottenere è
Impossibile creare un array generico di
LinkedList<IntegerNode>
.
Così, ho due problemi con questo:
- Che cosa sto facendo di sbagliato, e
- Perché il tipo accettabile nella dichiarazione per la matrice, se non può essere creato?
IntegerNode
è una classe che ho creato. E tutti i miei file di classe sono raggruppati insieme.
Una migliore alternativa a quest'ultima soluzione sarebbe quella di: classe 'IntegerNodeList estende Lista {}' –
kamasheto
quanto sopra avrebbe dovuto essere l'implementazione di List cioè estende ArrayList .... – Dori
Questa implementazione è scandalosamente lenta. Ottenere l'elemento [1000] [2000] (nodeLists.get (1000) .get (2000)) renderà LinkedList iterare 3000 volte! Evita LinkedList se qualcuno può indicizzarti. ArrayList indicizzerà più rapidamente, ma la soluzione di Fredrik è complessivamente migliore. –