循环推理java lambda GroupBy

循环推理java lambda GroupBy,java,lambda,grouping,java-8,Java,Lambda,Grouping,Java 8,我是lambdas的新手,对这行代码中的错误感到困惑: HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate())); HashMap groupTrades=allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate(

我是lambdas的新手,对这行代码中的错误感到困惑:

HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate()));
HashMap groupTrades=allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate());
IntelliJ由于循环推理而无法编译。

请尝试删除getTradeDate上的()

HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));
HashMap groupTrades=allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));

这里有一个很好的小概述:

在经历了一点痛苦之后,我已经解决了这个问题,希望这对其他人也有用

不能使用HashMap或ArrayList-只需使用接口映射和列表,代码应为:

Map<Date, List<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));
Map groupTrades=allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));

请注意,当groupingBy中的任何参数与映射声明中的预期参数不匹配时,可能会导致此相当一般的消息。

尝试过,但仍然存在相同的问题。我有
Map
List
接口,但仍然存在相同的问题