2016-03-25 6 views
0

Ich bin unsicher, wie eine Getter-und Setter-Methode für meine Klassendatei, die einen Hash-Satz von Zeichenfolgen verwendet erstellen. Habe ich richtig gesagt, da es keine Indexierung mit Hash-Sets gibt, würde eine Getter-Methode das ganze Set zurückgeben und ein Setter würde einfach ein Element zum Set hinzufügen.Probleme mit hashsets in Java

import java.util.HashSet; 
import java.util.Iterator; 
import java.util.Set; 

public class Names { 

    // fields 
    private final Set<String> names = new HashSet<String>(); 

    //methods 
    public void addNames(final String name) { 
     names.add(name); 
     System.out.printf("Added %s to names hashset%n", name); 
    } 

    // getter methods 
    public Set<String> getNames() { 
     return names; 
    } 
} 

import java.util.HashSet; 
import java.util.Iterator; 

public class TestNames { 

    public static void main(String[] args) { 

     Names n = new Names(); 

     n.addNames("Roger"); 
     n.addNames("Gary"); 
     n.addNames("Mark"); 
     n.addNames("Sue"); 
     n.addNames("Angela"); 
     n.addNames("Jay"); 
     n.addNames("Peter"); 

     System.out.println(getNames()); 

    } 
} 
+0

Was versuchen Sie zu erreichen? den Inhalt des HashSets drucken? – Suparna

+0

Warum möchten Sie sogar die 'Names' Klasse erstellen? Welchen Zweck löst es? Sie können einfach ein 'HashSet' erstellen, das Namen in der' main() 'Methode genannt wird, die genau das Gleiche tun würde. – Atri

+0

es hängt von Ihrer Implementierung ab, Sie können ein Feld vom Typ Set haben und dann können Sie Setter für das Feld erstellen. Die Benutzer Ihrer Klasse können das neue HashSet () mithilfe der Setter-Methode übergeben. Wenn Sie Elemente hinzufügen möchten, können Sie diese verwenden, wie Sie es bereits getan haben. –

Antwort

0

Ja, Sie haben Recht. Für Set<Names> die Art, wie Sie die addNames() Funktion korrekt erstellt haben, verhält es sich in diesem Fall ähnlich wie Setter. Getter ist in Ordnung.

Um dies zu beweisen, können Sie versuchen, Getter/Setter dieses Objekts explizit auch mit Eclipse zu generieren. Es erzeugt auch nur Getter.

Für die Einstellung ist der Wert diff-Funktion erforderlich.

0

Ihre Frage ist ein wenig unklar, aber wenn das Ziel der Getter-Methode ist, den ganzen Satz von Namen zurückzugeben, so dass Sie es ausdrucken können, dann sind Sie fast da.

Ändern System.out.println(getNames()); zu System.out.println(n.getNames());.