列表流 HashMap 的改进

Improvement with list stream HashMap

是否有使用列表流改进此方法的方法。

@Override
public HashMap<Long, Long> countSearchBetweenDates(OffsetDateTime startPeriod, OffsetDateTime endPeriod) {
    List<Tuple> results = this.repository.countBetweenDate(startPeriod, endPeriod);
    HashMap<Long,Long> companyCountMap = new HashMap<>();
    for(Tuple t : results){
        companyCountMap.put(t.get(0,Long.class), t.get(1, Long.class));
    }
    return companyCountMap;
}

我试过了,但由于 lambda 运算符,我无法让它工作。

 return results.stream().collect(Collectors.toMap(Tuple::get(0, Long.class), Tuple::get(1, Long.class));

Tuple::get(0, Long.class), Tuple::get(1, Long.class) 收到错误信号,但 IDE 无法识别它是什么。

您使用的语法不正确,正确的应该是:

return results.stream()
        .collect(Collectors.toMap(t -> t.get(0, Long.class), t -> t.get(1, Long.class));