我对Collections.class和“copy”方法有疑问.
1)为什么我们在下面的代码条件下检查源列表的大小,以及为什么它必须小于10?为什么这么重要?
2)更重要的是,为什么我们在这个条件中使用for循环而while – while(hasNext())
public static void copy(List super T> dest, List extends T> src) {
int srcSize = src.size();
if (srcSize > dest.size()) {
throw new IndexOutOfBoundsException("Source does not fit in dest");
} else {
if (srcSize < 10 || src instanceof RandomAccess && dest instanceof RandomAccess) {
for (int i = 0; i < srcSize; ++i) {
dest.set(i, src.get(i));
}
} else {
ListIterator super T> di = dest.listIterator();
ListIterator extends T> si = src.listIterator();
for (int i = 0; i < srcSize; ++i) {
di.next();
di.set(si.next());
}
}
}
}
我们为什么使用