Tôi đang làm việc trên một lớp ma trận thưa thớt mà cần để sử dụng một mảng LinkedList
để lưu trữ các giá trị của ma trận. Mỗi phần tử của mảng (nghĩa là mỗi LinkedList
) đại diện cho một hàng của ma trận. Và, mỗi phần tử trong mảng LinkedList
đại diện cho một cột và giá trị được lưu trữ.Không thể tạo một mảng các LinkedLists trong Java ...?
Trong lớp học của tôi, tôi có một lời tuyên bố của các mảng như:
private LinkedList<IntegerNode>[] myMatrix;
Và, trong constructor của tôi cho SparseMatrix
, tôi cố gắng xác định:
myMatrix = new LinkedList<IntegerNode>[numRows];
Các lỗi tôi kết thúc nhận được là
Không thể tạo mảng chung là
LinkedList<IntegerNode>
.
Vì vậy, tôi có hai vấn đề với điều này:
- Tôi đang làm gì sai, và
- Tại sao các loại chấp nhận được trong việc kê khai cho mảng nếu nó không thể được tạo ra?
IntegerNode
là lớp mà tôi đã tạo. Và, tất cả các tệp lớp của tôi được đóng gói cùng nhau.
Một giải pháp thay thế tốt hơn cho giải pháp sau sẽ là: 'lớp IntegerNodeList mở rộng Danh sách {}' –
kamasheto
ở trên sẽ phải thực hiện Danh sách mở rộng ArrayList .... – Dori
Việc triển khai này quá chậm. Lấy phần tử [1000] [2000] (nodeLists.get (1000) .get (2000)) sẽ làm cho LinkedList lặp lại 3000 lần! Tránh LinkedList nếu có ai đó có thể lập chỉ mục vào nó. ArrayList sẽ lập chỉ mục nhanh hơn, nhưng giải pháp của Fredrik thì tốt hơn. –