列表流 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));
是否有使用列表流改进此方法的方法。
@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));