jjzjj

groupingby

全部标签

Java:groupingBy子值作为值

比方说,我有一个对象Person,其字段类型为FirstName和LastName。现在我还有一个List我喜欢使用流。现在我想生成一个Map>为了将具有相同名字的人分组。如何在不编写太多代码的情况下解决这个问题?到目前为止我的方法是personList.stream().collect(Collectors.groupingBy(Person::getFirstName,person->person.getLastName()//thisseemstobewrong));但似乎这是分配map值的错误方法。我应该改变什么?或者我应该将.reduce与newHashMap>()一起使用吗

java - Stream.collect(groupingBy(identity(), counting()) 然后按值对结果进行排序

我可以collectalistofwordsintoabag(又名多集):Mapbag=Arrays.asList("oneo'clocktwoo'clockthreeo'clockrock".split("")).stream().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));但是,不能保证袋子中的条目以任何特定顺序排列。例如,{rock=1,o'clock=3,one=1,three=1,two=1}我可以将它们放入列表中,然后使用我实现的值比较器对它们进行排序:ArrayList

java - 使用 Collectors.groupingby 创建集合的映射

我知道如何创建Map>,使用Collectors.groupingBy:Map>listMap=items.stream().collect(Collectors.groupingBy(s->s.key));我将如何修改该代码以创建Map>?或者我可以不使用stream来做吗?因此必须使用for循环等手动创建它? 最佳答案 使用Collectors.toSet()作为groupingBy中的下游:Map>map=items.stream().collect(Collectors.groupingBy(s->s.key,Collect

java - 使用 groupingBy 创建一个以不可变列表为键的 Map

比如说,我有一个名为Project的类,classProject{privateStringprojectId;privateStringprojectName;}还有一个名为Employee的类,它有一个项目列表classEmployee{privateStringname;privateListprojects}我还有一个Employee对象列表。现在,我需要创建一个Map,其中项目列表作为键,一组员工对象作为此列表中的值。我可以让它工作Map,Set>x=employees.stream.collect(Collectors.groupingBy(Employee::getPro

Java Stream GroupingBy 在自定义对象中收集

我有温度等级classTemperature{doubleminTemp;doublemaxTemp;Stringcity;Stringcountry;}我有另一个维护温度集合的类classTemperatures{Listtemperatures;}我想使用流按countryName对温度进行分组。我想要的是publicMaptemperaturesByCountry()但是我无法使用流获取温度作为map值,我得到的是温度列表。我的groupingBy实现如下Map>result=this.getTemperatures().stream().collect(Collectors.g

java - 如何从方法 Collectors.groupingBy 获取有序类型的 map

我需要将数据列表按类型分成不同的列表,为此我使用构造Map>dishMap=menu.stream().collect(Collectors.groupingBy(Dish::getType));但是如何从方法“Collectors.groupingBy”中获取LinkedHashMap而不是HashMap。我在javadoc中找到了一些数据,但我无法获得必须使用此方法执行的操作:Map>dishMap=menu.stream().collect(Collectors.groupingBy(Dish::getType,LinkedHashMap::new,????));我应该在方法“g

Java解决stream流Collectors.groupingBy 分组统计可能报空指针异常

在使用stream流的Collectors.groupingBy做分组统计时(示例代码如下) MapString,Long>collect=list.stream().collect(Collectors.groupingBy(User::getUserName,Collectors.counting()));如果统计的字段userName有null值则会报如下错误java.lang.NullPointerException:elementcannotbemappedtoanullkey atjava.util.Objects.requireNonNull(Objects.java:228)

java根据分组函数GroupingBy进行多个条件组合分组

在SQL中经常会用到分组,我们也常常遇到一些组合分组的场景。java8分组传统写法(单个字段分组)场景:根据城市进行分组使用的是方法引用:User::getCity来完成分组importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;importjava.util.Arrays;importjava.util.List;importjava.util.Map;importjava.util.stream.Collectors;publicclassDemo2{publicstaticvoidmain(String

Java 8 流 : groupingBy with multiple Collectors

我想使用Java8Stream和Groupbyoneclassifier但有多个Collector函数。因此,在分组时,例如计算一个字段(或另一个字段)的平均值和总和。我试着用一个例子来简化一下:publicvoidtest(){Listpersons=newArrayList();persons.add(newPerson("PersonOne",1,18));persons.add(newPerson("PersonTwo",1,20));persons.add(newPerson("PersonThree",1,30));persons.add(newPerson("Person

java - Collectors.groupingBy() 中的映射值

为了这个例子,假设我有一个简单的类型Tuple有两个属性:interfaceTuple{TgetFirst();UgetSecond();}现在我想将一组(first,second)元组转换成一个映射,将每个first值映射到一组所有second值包含在具有特定first值的元组中。groupSecondByFirst()方法显示了一种可能的实现方式,它可以执行我想要的操作:Map>groupSecondByFirst(Set>tuples){Map>result=newHashMap();for(Tuplei:tuples){result.computeIfAbsent(i.getF