我创建了一种方法,该方法应交织两个列表对象并返回新的交织的列表。
即,如果aList为[A,C,E,G]&bList为[B,D,F],则该方法将返回包含[A,B,C,D,E,F,G]的列表
没有编译器错误,当我运行该程序时,返回的列表为空。我已经知道该程序不会将其放入for循环中,因为出于某种原因,当我创建newList时,它的大小为0。
这是代码:
public static <E> List<E> interweave(List<E> a, List<E> b){
List<E> newList = new ArrayList<E>(a.size() + b.size());
Iterator<E> itrA = a.iterator();
Iterator<E> itrB = b.iterator();
for(int i = 0; i < newList.size(); i++){
if(i%2 == 0)
newList.add(i, itrA.next());
else
newList.add(i, itrB.next());
}
return newList;
}
最佳答案
我相信可以使用while(iterator.hasNext())
惯用语以更简单的方式完成此操作:
itrA = a.iterator();
itrB = b.iterator();
while (itrA.hasNext() || itrB.hasNext()) {
if (itrA.hasNext())
newList.add(itrA.next());
if (itrB.hasNext())
newList.add(itrB.next());
}
关于java - 方法错误-使用迭代器交织列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32719860/