Bic*_*ick 35 java hashmap java-8 java-stream
假设我有一Dog堂课.
在里面我有一个Map<String,String>和一个值是Breed.
public class Dog {
String id;
...
public Map<String,String>
}
Run Code Online (Sandbox Code Playgroud)
我想获得Map的ListS:
HashMap<String, List<Dog>> // breed to a List<Dog>
Run Code Online (Sandbox Code Playgroud)
我宁愿使用Stream而不是迭代它.
我该怎么做?
Era*_*ran 64
你可以做到groupingBy.
假设您的输入是a List<Dog>,则调用类中的Map成员,并为"Breed"键存储Breed:Dogmap
List<Dog> dogs = ...
HashMap<String, List<Dog>> map = dogs.stream()
.collect (Collectors.groupingBy(d -> d.map.get("Breed")));
Run Code Online (Sandbox Code Playgroud)
Nes*_*aev 37
通过使用函数式编程符号,可以进一步改善上面的好答案:
List<Dog> dogs = ...
HashMap<String, List<Dog>> map = dogs.stream()
.collect(Collectors.groupingBy(Dog::getBreed));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23157 次 |
| 最近记录: |