Java 使用流的返工方法

Java 使用流的返工方法,java,java-stream,Java,Java Stream,我编写了这个方法来计算数据使用量。它接收带有数据的LinkedList(historyDate),然后我将其添加到集合中以避免重复并计算映射中的键值(数据计数) 我有一个问题-以什么方式以及如何使用stream进行返工?谢谢你的回答尽管做吧 Map<String, Integer> result = codingHistory.historyDate.stream() .collect(Collectors.toMap(date -> date, date -&

我编写了这个方法来计算数据使用量。它接收带有数据的LinkedList(historyDate),然后我将其添加到集合中以避免重复并计算映射中的键值(数据计数)

我有一个问题-以什么方式以及如何使用stream进行返工?谢谢你的回答

尽管做吧

Map<String, Integer> result = codingHistory.historyDate.stream()
        .collect(Collectors.toMap(date -> date, date -> 1, Integer::sum));
Map 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()
        ));
}
public Map countingscodingsbydate(){
返回codingHistory.historyDate.stream()
.collect(收集器.groupingBy(
Function.identity(),
3.计数()
));
}

注意:这是查找
集合发生情况的正常方法。有关类似的问题,请参见:,

我建议使用
收集器。groupingBy
作为类似您的用例

Map<String, Long> groupedByDate = codingHistory.historyDate.stream()
   .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Map groupedByDate=codingHistory.historyDate.stream()
.collect(Collectors.groupingBy(Function.identity()、Collectors.counting());

我不太懂你的代码。基本上,您正在生成一个映射,其中每个值(计数)都是1。事实上,问题在于您缺乏对问题的详细解释,以及您在尝试解决方案时可能遇到的问题。添加解释相关,但可能不重复:,它不会编译。正确的返回类型是
Map
。谢谢@Michael,小拷贝粘贴错误,我已经更正了
public Map<String, Long> countCodingsByDate() {
    return codingHistory.historyDate.stream()
        .collect(Collectors.groupingBy(
            Function.identity(),
            Collectors.counting()
        ));
}
Map<String, Long> groupedByDate = codingHistory.historyDate.stream()
   .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));