Java阵列&;泛型:Java等价于C#IEnumerable<;T>;
因此,在C#中,我可以将Java阵列&;泛型:Java等价于C#IEnumerable<;T>;,java,arrays,generics,Java,Arrays,Generics,因此,在C#中,我可以将字符串[]视为IEnumerable 是否有Java等价物?Iterable您正在寻找Iterable Iterable IEnumerable 迭代器IEnumerator 我相信Java等价物是可伸缩的。尽管String[]没有实现它,但您仍然可以在元素上循环: String[] strings = new String[]{"this", "that"}; for (String s : strings) { // do something } 如果您确实
字符串[]
视为IEnumerable
是否有Java等价物?
Iterable
您正在寻找Iterable
Iterable IEnumerable
迭代器IEnumerator
我相信Java等价物是可伸缩的。尽管String[]
没有实现它,但您仍然可以在元素上循环:
String[] strings = new String[]{"this", "that"};
for (String s : strings) {
// do something
}
如果您确实需要实现Iterable
,可以执行以下操作:
String[] strings = new String[]{"this", "that"};
Iterable<String> stringIterable = Arrays.asList(strings);
String[]strings=新字符串[]{“this”,“that”};
Iterable stringIterable=数组.asList(字符串);
Iterable
相当于IEnumerable
如果实现了数组Iterable
,那么在类型系统中这将是一个奇怪的问题String[]
是Object[]
的实例,但Iterable
不是Iterable
。类和接口不能使用不同的泛型参数实现相同的泛型接口
String[]
将像增强for循环中的Iterable
一样工作
String[]
可以很容易地转换为Iterable
:
Iterable<String> strs = java.util.Arrays.asList(strArray);
Iterable strs=java.util.Arrays.asList(strArray);
更喜欢集合而不是数组(对于非原语)。引用类型的数组有点奇怪,自Java 1.5以来很少需要。Iterable
可以,但有一个小问题。它不能在stream()
即lambda表达式中轻松使用
如果需要,应该获取它的拆分器,并使用类
StreamSupport()
关于为什么不能在Iterable和Iterable之间转换的更多信息,请查看。好的,现在让我们谈谈房间里500磅的大猩猩。您如何使用IterableJava中等价的yield-return
语句是什么?@brainslaugs83我认为这是另一个问题。
Iterable<String> strs = java.util.Arrays.asList(strArray);