ale*_*oid -4 java java-8 java-stream
我有以下Java代码:
List<BaseQuery> queries;
Map<Long, List<BaseQuery>> map = new HashMap<>();
for (BaseQuery query : queries) {
List<BaseQuery> queryList = map.get(query.getCharacteristicId());
if(queryList == null) {
queryList = new ArrayList<>();
map.put(query.getCharacteristicId(), queryList);
}
queryList.add(query);
}
Run Code Online (Sandbox Code Playgroud)
能否请您展示如何将其转换为Java 8和流?
Eug*_*ene 10
它很简单groupingBy:
queries.stream()
.collect(Collectors.groupingBy(BaseQuery::getCharacteristicId));
Run Code Online (Sandbox Code Playgroud)
这将创建一个List<BaseQuery>as值,它隐含地:
queries.stream()
.collect(Collectors.groupingBy(
BaseQuery::getCharacteristicId,
Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
但是如果你想要保证一个可变的List:
queries.stream()
.collect(Collectors.groupingBy(
BaseQuery::getCharacteristicId,
Collectors.toCollection(ArrayList::new)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2871 次 |
| 最近记录: |