Java Arrays & Generics : Java Equivalent to C# IEnumerable<T>

2022-08-31 21:01:12

因此,在 C# 中,我可以将 a 视为 .string[]IEnumerable<string>

有没有Java的等价物?


答案 1

Iterable<String>等效于 。IEnumerable<string>

如果实现了数组,那么在类型系统中将是一个奇怪的问题。 是 的实例,但不是 。类和接口不能使用不同的泛型参数相乘实现相同的泛型接口。IterableString[]Object[]Iterable<String>Iterable<Object>

String[]将像增强的 for 循环中一样工作。Iterable

String[]可以很容易地变成一个:Iterable

Iterable<String> strs = java.util.Arrays.asList(strArray);

更喜欢集合而不是数组(无论如何对于非基元)。引用类型的数组有点奇怪,从Java 1.5开始很少需要。


答案 2

你在寻找吗?Iterable<String>

Iterable<T> <=> IEnumerable<T>
Iterator<T> <=> IEnumerator<T>