2016-03-25 50 views
0

我不确定如何为使用字符串哈希集的类文件创建getter和setter方法。我是否正确地表示,因为没有使用hashset进行索引,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。你的类的用户可以使用setter方法传递新的HashSet ()。如果你想添加元素,那么你可以像你已经做的那样使用。 –

回答

0

是啊,你是对的。对于Set<Names>您创建addNames()函数的方式是正确的,它在此情况下的行为与Setter的行为类似。 Getter很好。

为了证明这一点,您可以尝试使用eclipse明确生成此对象的getter/setter。它也将只产生吸气剂。

用于设置值diff功能是必需的。

0

你的问题有点不清楚,但如果getter方法的目标是返回整组名称以便打印它,那么你几乎就在那里。

System.out.println(getNames());更改为System.out.println(n.getNames());