【发布时间】:2012-05-07 07:38:04
【问题描述】:
我有一个基元数组,例如 int, int[] foo。它可能是小型的,也可能不是。
int foo[] = {1,2,3,4,5,6,7,8,9,0};
从中创建Iterable<Integer> 的最佳方法是什么?
Iterable<Integer> fooBar = convert(foo);
注意事项:
请不要使用循环来回答(除非你能很好地解释编译器如何对它们进行智能处理?)
还要注意
int a[] = {1,2,3};
List<Integer> l = Arrays.asList(a);
甚至不会编译
Type mismatch: cannot convert from List<int[]> to List<Integer>
同时检查 Why is an array not assignable to Iterable? 在回答之前。
另外,如果您使用某些库(例如 Guava),请解释为什么这是最好的。 (因为它来自谷歌不是一个完整的答案:P)
最后,由于似乎有关于这方面的作业,请避免发布作业代码。
【问题讨论】:
-
Iterator for array的可能重复
-
将它们添加到 LinkedList,然后返回该 Set 的迭代器。