java - java可以编写循环遍历集合和数组的循环?

  显示原文与译文双语对照的内容

是否有可能检查一个对象是 array 还是带有一个子句的Collection? 我正在尝试实现的内容:

假设数组实现 Iterable,并且假定对象 foo 可以是 array 或者 Collection,我想使用如下所示的代码 Fragment:


if (foo instanceof Iterable) {


 for (Object f : (Iterable) foo) {


//do something with f


 }


}



不幸的是,array 不能转换为 Iterable 。 它也没有实现 Collection 。 是否有其他可能在一个循环中进行处理? 当然,--使用an子句和两个循环( 那是不可能的) 来代替 -- 。

编辑:响应这些答案。 我知道 isArray() 方法,但是在这种情况下,


...


for (Object f : (Iterable) foo) {


...



由于一个foreach循环和集合和数组同时工作,因这里不能使用这两个循环。

时间:

其他的答案都在努力回答原题目的问题:

数组和集合是否有公共接口或者超类?

但是你真正的问题是在身体中:

是否有其他可能在一个循环中进行处理?

答案是:,无法编写单个 for 循环来遍历集合和数组。

你可以跳过一堆轮廓,将数组转换成列表,但是你几乎完全可以使用两个( 或者更多) 循环。 调用 getClass().isArray() 会告诉你你有什么,但你仍然不能在没有某种类型的情况下使用它。 Arrays.asList() 不适用于基元数组。

...