2016-03-25 10 views
0

文字列のハッシュセットを使用するクラスファイルのゲッターとセッターメソッドを作成する方法がわかりません。 getterメソッドが全体のセットを返し、setterが単に要素をセットに追加するだけで、ハッシュセットでインデックスが作成されないので、私は言っているでしょうか?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

あなたは何を達成しようとしていますか? HashSetの内容を出力しますか? – Suparna

+0

なぜ 'Names'クラスを作成したいのですか?それはどのような目的で解決されますか?まったく同じことを行う 'main()'メソッドで単に 'HashSet'という名前を作成するだけです。 – Atri

+0

これは実装に依存しますが、Set型のフィールドを持つことができ、フィールド用のセッターを作成できます。クラスのユーザーは、setterメソッドを使用して新しいHashSet ()を渡すことができます。要素を追加する場合は、すでに行ったように使用することができます。 –

答えて

0

うん、あなたは正しいです。 Set<Names>の場合、addNames()関数の作成方法は正しいですが、この場合はSetterと同様に動作します。 ゲッターは問題ありません。

これを証明するために、eclipseを使ってこのオブジェクトのgetter/setterを明示的に生成することができます。また、ゲッターだけが生成されます。

値の設定にはdiff関数が必要です。

0

あなたの質問は少し不明ですが、ゲッタメソッドの目的が印刷することができるように名前のセット全体を返すことであれば、ほぼそこにいます。

変更System.out.println(getNames());~System.out.println(n.getNames());

関連する問題