Pracuję nad rzadką klasą macierzową, która wymaga użycia w celu użycia macierzy LinkedList
do przechowywania wartości macierzy. Każdy element tablicy (to znaczy każdy LinkedList
) reprezentuje rząd macierzy. A każdy element w tablicy LinkedList
reprezentuje kolumnę i zapisaną wartość.Nie można utworzyć tablicy LinkedLists w Javie ...?
w mojej klasie, mam deklarację tablicy jako:
private LinkedList<IntegerNode>[] myMatrix;
i moim konstruktora dla SparseMatrix
, staram się określić:
myMatrix = new LinkedList<IntegerNode>[numRows];
Błąd skończę Uzyskiwanie to
Nie można utworzyć ogólnej tablicy
LinkedList<IntegerNode>
.
Tak, mam dwa problemy z tym:
- Co robię źle i
- Dlaczego typ dopuszczalne w deklaracji tablicy, jeśli nie można go stworzył?
IntegerNode
to klasa, którą stworzyłem. Wszystkie moje pliki klas są spakowane razem.
Lepszym rozwiązaniem z drugim rozwiązaniem byłoby: klasa 'IntegerNodeList rozciąga Lista {}' –
kamasheto
wyżej musiałby być Realizacja listy tj rozciąga ArrayList .... – Dori
Ta implementacja jest outrageously powoli. Pobranie elementu [1000] [2000] (nodeLists.get (1000) .get (2000)) spowoduje, że LinkedList będzie iterować 3000 razy! Unikaj LinkedList, jeśli ktoś może się do niej indeksować. ArrayList indeksuje się szybciej, ale rozwiązanie Fredrika jest ogólnie lepsze. –