Alb*_*ert 39 java iterator iterable
我想知道为什么这个Collection.addAll()方法只接受其他Collections但不接受Iterables.这是为什么?
对Iterables 做任何类似的方法?
Mic*_*rdt 39
大概是因为Collection接口是在Java 1.2中引入的,而Iterable只出现在1.5中,并且更改接口会破坏所有现有的实现.
Mic*_*vis 32
如有疑问,请务必检查番石榴(或下议院):
TWi*_*Rob 11
其他人广泛地回答了"为什么".
有什么类似的方法为Iterables做到这一点?
在Java 8中,您不再需要addAll:
Collection<X> coll = ...;
Iterable<X> it = ...;
it.forEach(coll::add); // coll.addAll(it);
Run Code Online (Sandbox Code Playgroud)
Osc*_*Ryz 10
基本上因为一个Iterable可能永远不会结束(也就是hasNext()永远地回归真实).
另外,为了保持一致性,你可能认为Collection可以添加另一个集合的所有元素,但是,Iterable它不一定是一个集合(它可能是任何东西,例如ResultSet包装器).
| 归档时间: |
|
| 查看次数: |
8531 次 |
| 最近记录: |