Java实现Iterable,对于每个和方法

标签 java collections foreach iterator iterable

我在这个练习中使用了一个算法来实现。我有这个主要的:

    public static void main(String[] args) {
        Person a = new Person("Tony");
        Person c = new Person("Luke");
        Person o = new Person("Ann");

        a.addFriends(c);
        a.addFriends(o);

        for(Person p: a.contacts())
            System.out.println(p);
}

如果我用“a”替换“a.contacts()”并使用这个类,代码就可以工作了!但是如何使用“a.contacts()”实现 for-each 循环?谢谢

class Person implements Iterable<Person> {

    private Set<Person> friends = new HashSet<Person>();   
    private String name;

    public Person(String name){
        this.name = name;
    }

    public void addFriends(Person o){                
        friends.add(o);
   }

    public String toString(){
        return this.name;
    }


    @Override
    public Iterator<Person> iterator() {
        Iterator<Person> i = friends.iterator();
        return i;
    }

    //Here the contacts method to implement!!

}

最佳答案

让您的contacts() 方法有一个返回类型Set of Person....

public Set<Person> contacts() {
    return friends;
}

所以现在下面的将起作用...

for (Person p : a.contacts()) {
    System.out.println(p);
}

关于Java实现Iterable,对于每个和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12129603/

相关文章:

java - Android 蓝牙 LE 屏蔽 UUID 过滤器

java - cucumber 如何查找功能文件是否已执行?任何Java方法?

java - 将多个项目添加到 Java 中已初始化的数组列表

forms - Html.BeginForm 不输出集合中第一项的表单

Javascript : function bind. 单击&每个复选框

java - For-Each 循环困惑的严重案例

java - 似乎无法正确反转循环输出

java - 重构 Java EE WebApp 何时有用?

python - Python中的键序字典

c# - 将 List<t> 转换或转换为 EntityCollection<T>