我想知道如何创建一个链表的链表。同时,如果能使用预定义的Java类LinkedList及其方法进行定义和其他添加、获取、遍历操作将会很有帮助。
您可以将任何对象放入列表中,包括另一个列表。
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);
这里的变量mainlist是一个LinkedList of LinkedLists,而变量temp包含了第一个列表存储的值,即sublist1。
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());