java - 如何获取 HashMap 中包含的所有键的特定属性值?
问题描述
我有一个哈希图:
Map<String, Paper> numberMapping = new HashMap<>();
类纸String[] author; String[] scores;
我想检索哈希图中包含的每个对象的所有作者。
我试过System.out.print(numberMapping.values().getAuthor());
但它不起作用,我该怎么做?提前致谢。
解决方案
您没有看到用户友好的输出,因为您正在打印没有友好的 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
来存储值,正如评论中所指出的那样
推荐阅读
- java - 鼠标光标移动后不改变位置
- sql - 从前一小时获取值并从 SQL 中的当前值中减去
- swift - 界面生成器上的 IBDesignable 问题
- c# - 为什么 C# 编译器不抛出 The given expression never of the provided type 警告
- c# - 时间:2019-01-01 标签:c#decoratorpatternsmultiplepropertieswrappingmultipletimes
- python - Mariadb 运行注释中的代码
- swift - 用多对多关系预填充领域数据库?
- c - Visual Studio Code 继续运行
- c# - 使用 Microsoft Visual Studio 协助查找清单节点并编辑其属性
- vba - Excel VBA:在列中查找具有相似值的单元格