首页 > 解决方案 > 如何获取 HashMap 中包含的所有键的特定属性值?

问题描述

我有一个哈希图: Map<String, Paper> numberMapping = new HashMap<>();

类纸String[] author; String[] scores;

我想检索哈希图中包含的每个对象的所有作者。

我试过System.out.print(numberMapping.values().getAuthor());但它不起作用,我该怎么做?提前致谢。

标签: javahashmap

解决方案


您没有看到用户友好的输出,因为您正在打印没有友好的 toString() 方法的 String[] 对象。

要么使用 useSet<String>而不是String[],它具有更好的实现,要么假设 Java 8+,一种功能方式可能是:

Set<String> allAuthors = numberMapping.values()
        .stream()
        .map(paper -> paper.author)
        .flatMap(author -> Arrays.stream(author))
        .collect(Collectors.toSet());
System.out.println(allAuthors);

此外,对引用集合的变量使用复数形式也是常见的做法。

我假设输出的整体顺序对您来说并不重要,因为您正在使用 aHashmap来存储值,正如评论中所指出的那样


推荐阅读