Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java阵列&;泛型:Java等价于C#IEnumerable<;T>;_Java_Arrays_Generics - Fatal编程技术网

Java阵列&;泛型:Java等价于C#IEnumerable<;T>;

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 } 如果您确实

因此,在C#中,我可以将
字符串[]
视为
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);