我创建了:
LinkedList<LinkedList<Object>>
我知道如何为常规链表实现Iterable
以便迭代。
但是,我如何实现Iterable
以便能够在我的集合上进行迭代
LinkedList<LinkedList<Object>> ?
答案 0 :(得分:1)
喜欢这里:
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());
}
}
<强>编辑。强>
答案 1 :(得分:1)
Iterable
是一个通用接口。由于您希望迭代LinkedList<LinkedList<Object>>
,因此可以实现类型参数设置为LinkedList<Object>
的接口。
示例可运行类:
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();
}
}
<强>输出:强>
a1
a2
b1
b2