我有一个ArrayList正在进行多次迭代,看起来它没有保持迭代的顺序。我深入研究了一下,发现这个迭代所用的自定义iterator标签(由别人编写)首先将传递进来的ArrayList使用Arrays.asList转换为Object[]集合再进行迭代。迭代的顺序是否丢失?这是Arrays.asList期望发生的吗?
编辑:
这里是传递给iterator标签的原始集合执行的操作:
编辑:
这里是传递给iterator标签的原始集合执行的操作:
if(collection.getClass().isArray()) {
iterator = Arrays.asList((Object[]) collection).iterator();
} else if(collection instanceof Collection) {
iterator = ((Collection) collection).iterator();
} else if(collection instanceof Iterator) {
iterator = (Iterator) collection;
} else if(collection instanceof Map) {
iterator = ((Map) collection).entrySet().iterator();
}