Java 中链表的链表



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

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

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

YourClass对象的LinkedList LinkedList。从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子类),也可以创建将列表列表作为字段的类,并在其中添加方法来操作列表。

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

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

这里的变量列表是链接列表的链接列表,变量 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添加到外部列表。使用此代码,您以后可以轻松添加单个值:

lists.get(2).add("Foo");
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();

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

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

添加一个元素,比如说系列中的第二个链表:

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

相关内容

  • 没有找到相关文章

最新更新