对于没有实现Iterable

时间:2015-07-03 10:17:29

标签: java collections foreach interface iterable

我正在阅读完整参考中的收藏集,然后我遇到了这个声明

收集界面

  

Collection接口是Collections的基础   构建框架是因为它必须由任何类实现   定义一个集合。 Collection是一个具有此功能的通用接口   声明:interface Collection<E>。这里,E指定的类型   集合将持有的对象。 Collection扩展了Iterable   interface.This意味着所有集合都可以循环使用   使用for-each样式for循环。(回想一下那些类   实现Iterable可以通过for循环。

在最后两行中,写道只有那些实现Iterable接口的类才能通过for循环循环。 但是,我猜对象类没有实现可迭代接口,那么我们如何能够在字符串,整数等情况下使用for-each循环。

3 个答案:

答案 0 :(得分:5)

那是真的。 java.lang.Object未实现Iterable<T>接口。

我们可以遍历对象,因为对象持有者(例如Collection)自动实现Iterable<T>,不一定是集合中的对象部分。

答案 1 :(得分:3)

如果要迭代字符串或整数的集合,那么集合是可迭代的,而不是字符串或整数。迭代中的项不必是可迭代的;容器呢。

答案 2 :(得分:3)

你不会想要遍历一个整数,也不会做这样的事情。整数是单个实体,而可迭代接口是指实体的集合。例如:

List<Integer> intList = new ArrayList<Integer>();

for (Integer i : intList) {
   System.out.println(i);
}