我写了这个方法来计算数据使用次数。它接收带有数据的LinkedList(历史日期),然后我把它添加到Set中,以避免重复,并在Map中计算键值(数据计数)
public Map<String, Integer> countCodingsByDate() {
Set<String> dateCount = new HashSet<>(codingHistory.historyDate);
Map<String, Integer> dateOccurence = new HashMap<>();
for (String s : dateCount) {
int count = 0;
for (String a : codingHistory.historyDate) {
if (s.equals(a)) {
count++;
}
}
dateOccurence.put(s, count);
}
return dateOccurence;
}
输出:
{28-11-2019=5, 29-11-2019=3}
我有一个问题——用什么方式以及如何用流重做它?谢谢你的回答
我建议使用收集器。groupingBy
适用于像您这样的用例。
Map<String, Long> groupedByDate = codingHistory.historyDate.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
就这么做吧
Map<String, Integer> result = codingHistory.historyDate.stream()
.collect(Collectors.toMap(date -> date, date -> 1, Integer::sum));
如果你能使用地图
public Map<String, Long> countCodingsByDate() {
return codingHistory.historyDate.stream()
.collect(Collectors.groupingBy(
Function.identity(),
Collectors.counting()
));
}
注意:这是找出
集合
发生的正常方法。类似的问题,请参见: 1,2
我在应用程序中使用Activiti框架。Activiti通过Activiti API进行管理。 真是个问题: 我需要重新启动服务器wtih应用程序。这意味着两件事: 我需要正确暂停/停止所有活动 目前,我的应用程序已通过系统停止。退出(0) 问题: 我怎么会那样做呢?(意指以上两项) System.exit(0)会遇到什么问题? 编辑: 是的,谢谢。但我使用嵌入式Activiti。这些适用于嵌入式
返回 Stream 的方法是否有命名约定?我发现的唯一提及是在S.O(最后一段)上的答案,但我不明白它基于什么。
下面的代码生成一个 空指针异常 由于此人在本例中没有任何,因此我想将返回到 尝试添加仍然会产生相同的错误。 这应该如何处理?如果条件,有没有办法处理同一行代码而不是再检查一行?
我有一个流应用程序,具有以下驱动程序代码,用于实时消息转换。 执行几分钟后,应用会引发以下异常,然后不会在流中前进。 我试图清除目录并重新启动应用程序,但再次抛出相同的异常。我注意到的一件事是,该应用程序在转换所有积压消息之前工作正常,但在处理一些新消息后引发异常! 有时它也会抛出下面未被捕获的异常。 引发这些异常(其中一个)后,应用仍在运行,但未在流中前进。 处理这些错误的正确方法是什么?。是否
我有以下清单: