Map<String, String> phoneBook=people.stream()
.collect(toMap(Person::getName, Person::getAddress));
Run Code Online (Sandbox Code Playgroud)
重复发生时,我得到重复的密钥异常.
是否可以忽略在重复发生时将值添加到映射?
当存在重复时,它应该继续忽略该重复键.
我正在尝试通过(映射)进行分组,然后将值列表转换为不同的列表.
我有DistrictDocuments列表:
List<DistrictDocument> docs = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
然后我在它上面流式传输并按城市分组:
Map<String, List<DistrictDocument>> collect = docs.stream()
.collect(Collectors.groupingBy(DistrictDocument::getCity));
Run Code Online (Sandbox Code Playgroud)
我还有一个方法,它采用了DistrictDocument并从中创建了Slugable:
private Fizz createFizz(DistrictDocument doc) {
return new Fizz().name(doc.getName()).fizz(doc.getFizz());
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将该方法放入我的流中,所以我得到了Map<String, List<Fizz>>?我尝试将第二个参数添加到groupingBy但是找不到合适的方法并且总是遇到编译错误.
编辑:如果我的createFizz返回List<Fizz>怎么办?是否可以选择在Collectors.mapping中平展此列表,因为我仍然想要Map<String, List<Fizz>>而不是Map<String, List<List<Fizz>>>
我试图了解parallelStream()java 8 中的行为。这是我的示例代码。
List<Person> javaProgrammers = new ArrayList<Person>() {
{
add(new Person("Elsdon", "Jaycob", "Java programmer", "male", 43, 2000));
add(new Person("Tamsen", "Brittany", "Java programmer", "female", 33, 1500));
add(new Person("Floyd", "Donny", "Java programmer", "male", 33, 1800));
add(new Person("Sindy", "Jonie", "Java programmer", "female", 32, 1600));
add(new Person("Vere", "Hervey", "Java programmer", "male", 22, 1200));
add(new Person("Maude", "Jaimie", "Java programmer", "female", 33, 1900));
add(new Person("Shawn", "Randall", "Java programmer", "male", 33, 2300));
add(new Person("Jayden", "Corrina", "Java programmer", "female", 33, 1700));
add(new Person("Palmer", "Dene", "Java …Run Code Online (Sandbox Code Playgroud)