Java implementieren Durchsuchbar, für jede Methode

Ich habe diese übung mit einem Algorithmus zu implementieren. Ich habe diese main:

    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);
}

Wenn ich ersetzen "ein.Kontakte()" mit "ein" und verwenden Sie diese Klasse, der code funktioniert! Aber Wie kann ich das implementieren der for-each-Schleife mit "ein.Kontakte()"?? Dank

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!!

}
Es ist schwer zu verstehen, was Sie wollen. Selbst eine einfache getter wird sich so die Frage ist jetzt beschrieben. public Set<Person> contacts() { return friends; }. Es wird lediglich die Rückkehr der Freunde set, und wird Ihre (Der Set's) iterator. Keine Ahnung, ob das ist, was Sie wollen, obwohl.
P. S. Wenn name nie geändert (wird ein Wert zugewiesen, nur im Konstruktor), meist ist es eine gute Praxis, um zu erklären, wie final. (Es ist nicht im Zusammenhang mit Ihrer Frage in irgendeiner Weise, nur ein Tipp).

InformationsquelleAutor Peppe | 2012-08-26

Schreibe einen Kommentar