2012-06-15 81 views
6

Tôi muốn biết cách tạo danh sách liên kết các danh sách được liên kết. Ngoài ra, Sẽ hữu ích nếu được xác định trước LinkedList (lớp từ Java) và các phương thức của nó được sử dụng để xác định và cho các hoạt động thêm, nhận, listIterating khác.Danh sách liên kết danh sách liên kết trong Java

+0

Thậm chí, nếu tôi nhận mã của lớp danh sách liên kết do người dùng xác định với các phương pháp cơ bản. Cảm ơn –

+0

Bạn không cần phải nhận xét về bài đăng của mình theo cách này.Bạn có thể chỉnh sửa câu hỏi ban đầu của mình bất kỳ lúc nào. – BlackVegetable

Trả lời

21

Bạn có thể đặt bất kỳ đối tượng nào vào danh sách, kể cả danh sách khác.

LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>(); 

là một LinkedList của LinkedList s của YourClass đối tượng. Nó cũng có thể được viết bằng một cách đơn giản since Java 7:

LinkedList<LinkedList<YourClass>> list = new LinkedList<>(); 

ví dụ Rất đơn giản thao tác một danh sách như vậy:

Sau đó bạn cần phải tạo ra mỗi sublist, ở đây thêm một sublist duy nhất:

list.add(new LinkedList<YourClass>()); 

Sau đó tạo các đối tượng nội dung:

list.get(sublistIndex).add(new YourClass()); 

Sau đó bạn có thể duyệt qua nó như thế này (mục danh sách con được nhóm lại theo sublist):

for(LinkedList<YourClass> sublist : list) { 
    for(YourClass o : sublist) { 
     // your code here 
    } 
} 

Nếu bạn muốn thêm các phương pháp cụ thể vào danh sách này của danh sách, bạn có thể tạo một lớp con của LinkedList (hoặc List , hoặc bất kỳ lớp học nào khác là List) hoặc bạn có thể tạo một lớp với danh sách các danh sách dưới dạng một trường và thêm phương thức vào đó để thao tác danh sách.

+0

và cách lặp lại danh sách này? – roottraveller

+0

@roottraveller Đã thêm một ví dụ đơn giản :) Có nhiều cách có thể thực hiện, tùy thuộc vào những gì bạn muốn làm. – Autar

0
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>(); 

Làm tờ khai. Để thêm một danh sách liên kết (đến cuối theo mặc định), bạn sẽ làm gì

yourList.add(new LinkedList<YourClass>()); 

Để thêm một yếu tố để cho phép nói rằng danh sách liên kết thứ hai trong series:

yourList.get(1).add(new YourClass()); 
2

Vâng tôi đã làm điều này mã và tôi đã nhận nó đúng

  java.util.LinkedList mainlist = new java.util.LinkedList(); 

      java.util.LinkedList sublist1 = new java.util.LinkedList(); 
      sublist1.add(object1); 
      sublist1.add(object2); 
      sublist1.add(object3); 

      java.util.LinkedList sublist2=new java.util.LinkedList(); 
      sublist2.add(1); 
      sublist2.add(2); 

      mainlist.add(sublist1); 
      mainlist.add(sublist2); 

      // To retrieve the sublist1 from mainlist........... 
      java.util.LinkedList temp = (java.util.LinkedList)mainlist.get(0); 

đây biến mainlistLi nkedList của LinkedLists và biến tạm chứa giá trị danh sách đầu tiên được lưu trữ tức là sublist1 ..

1

Bạn thậm chí có thể đơn giản hóa truy cập vào danh sách thứ, ví dụ sử dụng

final List<List<String>> lists = new LinkedList<List<String>>() { 
     @Override 
     public List<String> get(final int index) { 
      while (index >= size()) { 
       add(new LinkedList<>()); 
      } 
      return super.get(index); 
     } 
    }; 

Mã này tự động thêm LinkedList s mới vào danh sách ngoài. Với mã này, sau này bạn có thể dễ dàng thêm các giá trị đơn lẻ:

lists.get(2).add("Foo"); 
Các vấn đề liên quan