我有一个原始数组,例如int,int [] foo。它可能是小型的,也可能不是。
int foo[] = {1,2,3,4,5,6,7,8,9,0}; 从中创建一个的最佳方法是Iterable 什么?
Iterable fooBar = convert(foo); 笔记:
请不要回答使用循环(除非您可以对编译器如何对它们做一些聪明的事情给出很好的解释?)
另请注意
int a[] = {1,2,3}; List l = Arrays.asList(a); 甚至不会编译
Type mismatch: cannot convert from List<int[]> to List 还要检查 为什么数组不能分配给Iterable? 在回答之前。
另外,如果您使用某些库(例如Guava),请解释为什么这是最好的。(因为来自Google的答案不是完整的:P)
最后,由于似乎有作业,因此请避免发布作业代码。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Integer foo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
List list = Arrays.asList(foo); // or Iterable iterable = Arrays.asList(foo); 虽然您需要使用一个Integer数组(而不是一个int数组)才能工作。
对于基元,可以使用番石榴:
Iterable fooBar = Ints.asList(foo); com.google.guava guava 15.0 jar 对于Java8 :(根据Jin Kwon的回答)
final int[] arr = {1, 2, 3}; final PrimitiveIterator.OfInt i1 = Arrays.stream(arr).iterator(); final PrimitiveIterator.OfInt i2 = IntStream.of(arr).iterator(); final Iterator i3 = IntStream.of(arr).boxed().iterator();
问题来源于stack overflow