我想知道如何创建链表的链表。此外,如果预定义的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());