Java HashMap只打印一次单独的值

Juh*_*o M 0 java hashmap

hashmap键包括注册号和hashmap值包括所有者名称.这是我的代码:

public static void main(String[] args) {

    HashMap<String, String> data = new HashMap<>();
    Scanner reader = new Scanner(System.in);

    data.put("AAA-111", "Jack");
    data.put("BBB-222", "Matt");
    data.put("CCC-333", "Jack");

    for (HashMap.Entry<String, String> entry: data.entrySet()) {
        System.out.println(entry.getValue());
        //data.values().remove(entry.getValue());
    }
}
Run Code Online (Sandbox Code Playgroud)

而目前的输出:

Jack
Matt
Jack
Run Code Online (Sandbox Code Playgroud)

问题是我不想两次打印出同一个主人.我的目标是:

Jack
Matt
Run Code Online (Sandbox Code Playgroud)

我怎么只能打印一次相同的值?

YCF*_*F_L 8

您可以创建Set如下:

Set<String> names = new HashSet<>(data.values());
Run Code Online (Sandbox Code Playgroud)

输出

[Matt, Jack]
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是最简单(也是最易读)的方法.如果要对值进行排序,请使用`TreeSet`. (2认同)