Java中链表的链表

Java中链表的链表,java,list,linked-list,Java,List,Linked List,我想知道如何创建一个链表的链表。另外,如果预定义的LinkedList(Java类)及其方法用于定义和其他添加、获取、列表迭代操作,这将非常有用。您可以将任何对象放入列表中,包括另一个列表 LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>(); 操作此类列表的非常简单的示例: 然后需要创建每个子列表,在此处添加单个子列表: list.add

我想知道如何创建一个链表的链表。另外,如果预定义的
LinkedList
(Java类)及其方法用于定义和其他添加、获取、列表迭代操作,这将非常有用。

您可以将任何对象放入列表中,包括另一个列表

LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();
操作此类列表的非常简单的示例:

然后需要创建每个子列表,在此处添加单个子列表:

list.add(new LinkedList<YourClass>());
然后可以像这样迭代(子列表的项按子列表分组):

for(LinkedList子列表:列表){
for(您的o类:子列表){
//你的代码在这里
}
}

如果您想向列表列表中添加特定的方法,您可以创建
LinkedList
(或
list
,或任何其他
list
子类)的子类,或者您可以创建一个以列表列表为字段的类,并在其中添加方法来操作列表。

好吧,我已经完成了这段代码,而且我做得很对

LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
          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);

这里变量mainlistLinkedList of LinkedList,变量temp包含存储在第一个列表中的值,即子列表1

您甚至可以简化对次要列表的访问,例如使用

    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);
        }
    };

如果我用基本方法得到用户定义的linkedlist类的代码,那就更好了。谢谢你不用用这种方式评论你的帖子。你可以随时编辑你的原始问题。如何在这个列表上迭代???@rootTraveler添加了一个简单的例子:)根据你想做什么,有很多方法可以做到这一点。
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
yourList.add(new LinkedList<YourClass>());
yourList.get(1).add(new YourClass());
          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);
    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);
        }
    };
lists.get(2).add("Foo");