【问题标题】:Linked List of Linked Lists in JavaJava中链表的链表
【发布时间】:2012-06-18 12:11:24
【问题描述】:

我想知道如何创建链表的链表。此外,如果预定义的LinkedList(Java 类)及其方法用于定义和其他添加、获取、列表迭代操作,将会很有帮助。

【问题讨论】:

  • 它甚至可以,如果我得到用户定义的链表类的基本方法的代码。谢谢
  • 您无需以这种方式对您的帖子发表评论。您可以随时编辑您的原始问题。

标签: java list linked-list


【解决方案1】:

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

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

LinkedListLinkedLists 的 YourClass 对象。也可以简写成since Java 7

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

操作此类列表的非常简单的示例:

然后您需要创建每个子列表,这里添加一个子列表:

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

然后创建内容对象:

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

然后您可以像这样对其进行迭代(子列表的项目按子列表分组):

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

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

【讨论】:

  • 以及如何遍历这个列表列表??
  • @roottraveller 添加了一个简单的例子 :) 有很多方法可以做到这一点,这取决于你想要做什么。
【解决方案2】:

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

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

此代码自动将新的LinkedLists 添加到外部列表中。使用此代码,您以后可以轻松添加单个值:

lists.get(2).add("Foo");

【讨论】:

    【解决方案3】:

    我已经完成了这段代码,我做对了

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

    这里的变量mainlistLinkedLists的LinkedList,变量temp包含值存储的第一个列表,即 sublist1..

    【讨论】:

      【解决方案4】:
      LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
      

      作为声明。要添加另一个链接列表(默认情况下添加到末尾),您可以这样做

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

      要添加一个元素到系列中的第二个链表:

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

      【讨论】:

        猜你喜欢
        • 2012-03-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 2018-05-05
        • 1970-01-01
        • 2013-11-22
        相关资源
        最近更新 更多