我想知道如何创建链表的链表。LinkedList
此外,如果预定义(来自 Java 的类)及其方法用于定义和其他添加、获取、列表迭代操作,这将很有帮助。
问问题
23506 次
4 回答
25
您可以将任何对象放入列表中,包括另一个列表。
LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();
是s 个对象LinkedList
中的一个。它也可以从 Java 7 开始以简化的方式编写:LinkedList
YourClass
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
子类)的子类,或者您可以创建一个将列表列表作为字段的类,并在其中添加方法来操作列表。
于 2012-06-15T12:13:06.047 回答
2
好吧,我已经完成了这段代码,而且我做对了
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是LinkedLists 的 LinkedList,变量temp包含存储的第一个列表的值,即sublist1 ..
于 2012-06-16T17:56:21.597 回答
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
的 s 添加到外部列表中。使用此代码,您以后可以轻松添加单个值:
lists.get(2).add("Foo");
于 2016-10-29T12:24:07.150 回答
0
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
作为宣言。要添加另一个链接列表(默认情况下到最后),您会这样做
yourList.add(new LinkedList<YourClass>());
要添加一个元素到系列中的第二个链表:
yourList.get(1).add(new YourClass());
于 2012-06-15T12:56:38.357 回答