[英]how can I implement iterable for LinkedList<LinkedList<obj>>
I have created : 我创造了 :
LinkedList<LinkedList<Object>>
I know how to implement Iterable
for regular linked list in order to iterate. 我知道如何为常规链表实现Iterable
以便进行迭代。
However, how can I implement Iterable
in order to be able to iterate over my collection when it is 但是,如何实现Iterable
,以便能够在其集合上进行迭代
LinkedList<LinkedList<Object>> ?
Like here: 像这儿:
Iterator<LinkedList <Object>> iterator = yourList.iterator();
while (iterator.hasNext()) {
LinkedList<Object> embededList=iterator.next();
Iterator<Object> embededIterator= embededList.iterator();
while(embededIterator.hasNext()){
System.out.println(embededIterator.next());
}
}
edited. 编辑。
Iterable
is a generic interface. Iterable
是通用接口。 Since you want to iterate over a LinkedList<LinkedList<Object>>
, you can implement the interface with the type parameter set to LinkedList<Object>
. 由于要遍历LinkedList<LinkedList<Object>>
,因此可以使用类型参数设置为LinkedList<Object>
方法实现接口。
Sample runnable class: 示例可运行类:
public class IterableClass implements Iterable<LinkedList<Object>>{
LinkedList<LinkedList <Object>> l = new LinkedList<LinkedList<Object>>();
public IterableClass() {
super();
LinkedList<Object> a = new LinkedList<Object>();
a.add("a1");
a.add("a2");
LinkedList<Object> b = new LinkedList<Object>();
b.add("b1");
b.add("b2");
l.add(a);
l.add(b);
}
public static void main(String[] args) {
IterableClass iterableObject = new IterableClass();
for(Iterator<LinkedList<Object>> it = iterableObject.iterator(); it.hasNext(); ) {
LinkedList<Object> list = it.next();
for (Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {
Object object = iterator.next();
System.out.println(object);
}
}
}
@Override
public Iterator<LinkedList<Object>> iterator() {
return l.iterator();
}
}
Output: 输出:
a1
a2
b1
b2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.