Iterable是什么<! - ? - >做

时间:2017-06-26 15:39:40

标签: java iterable

我们正在学校做一个音乐播放器项目,我们有一个播放列表课程,但课程实现&#34; Iterable<Title>&#34;。

究竟是什么意思?我所知道的是&#34; Iterable <something>&#34;浏览&#34;的东西&#34;这是正确的吗?

public class Playlist implements Iterable<Title>

3 个答案:

答案 0 :(得分:2)

Iterable本身什么都不做。它是一个定义3个方法的接口(在Java 8中)。实现Iterable的类必须实现这些方法(或使用默认实现)。

答案 1 :(得分:2)

声明class Playlist implements Iterable<Title>表示播放列表以某种方式包含标题列表或类似内容。

这意味着你可以写:

for (Title x : myPlaylist) {
    ... do something with the Title ...
}

从技术上讲,为了实现这一点,播放列表类需要有一个方法public Iterator<Title> iterator(),因此Java知道如何对播放列表的所有标题进行循环。而<Title>告诉Java,循环的元素是Title对象,而不是数字,字符串,播放列表或其他。

通常,implements X<Y>表示您的类具有X定义的所有方法,并且这些方法中的某些方法不具有固定类型,但有些变量方面,您希望具有类型Y使用

接口Iterator<T>定义方法public Iterator<T> iterator(),其中T是接口的可变部分。当播放列表实现Iterator时,您将获得方法public Iterator<Title> iterator()的具体版本,它允许您循环标题。

答案 2 :(得分:0)

它的界面。来自docs.oracle.com:

  

public interface Iterable<T>

     

实现此接口允许对象成为目标   &#34;的foreach&#34;声明,其中T是由返回的元素的类型   迭代器。

所以你问题的答案 - 是的,你的假设是正确的。