Java中链表的链表
我想知道如何创建一个链表的链表。另外,如果预定义的Java中链表的链表,java,list,linked-list,Java,List,Linked List,我想知道如何创建一个链表的链表。另外,如果预定义的LinkedList(Java类)及其方法用于定义和其他添加、获取、列表迭代操作,这将非常有用。您可以将任何对象放入列表中,包括另一个列表 LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>(); 操作此类列表的非常简单的示例: 然后需要创建每个子列表,在此处添加单个子列表: list.add
LinkedList
(Java类)及其方法用于定义和其他添加、获取、列表迭代操作,这将非常有用。您可以将任何对象放入列表中,包括另一个列表
LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();
操作此类列表的非常简单的示例:
然后需要创建每个子列表,在此处添加单个子列表:
list.add(new LinkedList<YourClass>());
然后可以像这样迭代(子列表的项按子列表分组):
for(LinkedList子列表:列表){
for(您的o类:子列表){
//你的代码在这里
}
}
如果您想向列表列表中添加特定的方法,您可以创建
LinkedList
(或list
,或任何其他list
子类)的子类,或者您可以创建一个以列表列表为字段的类,并在其中添加方法来操作列表。好吧,我已经完成了这段代码,而且我做得很对
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
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 LinkedList,变量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类的代码,那就更好了。谢谢你不用用这种方式评论你的帖子。你可以随时编辑你的原始问题。如何在这个列表上迭代???@rootTraveler添加了一个简单的例子:)根据你想做什么,有很多方法可以做到这一点。
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
yourList.add(new LinkedList<YourClass>());
yourList.get(1).add(new YourClass());
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);
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);
}
};
lists.get(2).add("Foo");