【发布时间】:2019-01-04 18:43:18
【问题描述】:
我有一个练习要解决。我有一个 Fox 类,它有名称和颜色字段。我的练习是通过颜色找到狐狸的频率。
因此我创建了一个 HashMap,其中 String 属性将是狐狸名称,而 Integer 将是事件本身:
Map<String, Integer> freq = new HashMap<>();
完成之后,我一直在尝试使用流编写代码,但我很难做到这一点。我写了这样的东西:
foxes.stream()
.map(Fox::getColor)
.forEach()
//...(continued later on);
,其中 foxes 是一个列表。
我的问题基本上是语法。如果颜色没有出现,我想做一些事情
freq.put(Fox::getName, 1)
其他
freq.replace(Fox::getName, freq.get(Fox::getName) + 1)
我应该如何组合?
【问题讨论】:
-
恕我直言,问题的后半部分混淆了最初的动机。在那里混合名称和颜色会改变完整的问题意图。
标签: java java-8 hashmap java-stream method-reference