Mic*_*tin 2 java iterator list
我创建了一个方法,它应该交织两个列表对象并返回新的,编织后的列表.
即如果aList是[A,C,E,G]并且bList是[B,D,F],则该方法将返回包含[A,B,C,D,E,F,G]的列表
没有编译器错误,当我运行程序时,返回的List为空.我已经发现该程序没有进入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;
}
Run Code Online (Sandbox Code Playgroud)
我相信这可以用一种更简单的方式来完成,使用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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |