在一个类中创建HashSet,想要在另一个类中调用/读取

时间:2014-01-13 10:54:34

标签: java hashset

我的程序中有两个类,其中一个我创建了一个名为'words'的HashSet,我需要能够从另一个类中的HashSet调用,否则就可以复制HashSet。我宁愿做前者,看起来更整洁,但要么就好了。

我想要/需要调用HashSet的那个代码是这样的:

private void execute(String[] commands)
{
    String basicCommand = commands[0];
    //this is something I have used in a previous project to call from the HashSet
    for (String word : words)
    {
        if(basicCommand.equals("circle")) {
        makeACircle(commands);
        }
        if(basicCommand.equals(word))
                {EMPTY FOR NOW}
        else if(basicCommand.equals("help")) {
        printHelp();
        }
        else {
        System.out.println("Unknown command: " + basicCommand);
        }
    }
}`

我的HashSet的代码是:

public String[] getInput()
{
    System.out.print("> ");                // print prompt
    String inputLine = reader.nextLine().trim().toLowerCase();

    String[] wordArray = inputLine.split(" ");  // split at spaces

     // add words from array into hashset 
    for(String word : wordArray) {
        words.add(word);
    }
    return wordArray;
}

(HashSet'words'在课程的早期定义)

1 个答案:

答案 0 :(得分:1)

 If HashSet is non-static

在包含getHashSet()的班级中创建HashSet方法。它返回对hashset的引用。 在要访问此HashSet的类中创建包含HashSet的类的新实例。致电instance.getHashSet();

if HashSet is static

(最好将其公开......) 使用ClassContainingHashSet.hashSet来获取hashset。

编辑:

public class MyFirstClass{

public static Set<YourType> mySet = new HashSet<yourType>();
}

class MySecondClass{
public void readHashSet()
{
  HashSet<YourType> hs = MyFirstClass.mySet;
}
}  

注意:这不是确切的代码..这是示例代码。