草庐IT

分组会

全部标签

java - 如何使用特定的键和值将流分组到 map ?

我有一个Stream>myStream;我想把它聚合成一个Map>result;我设法做到了以下几点:Map>>result=myStream.collect(Collectors.groupingBy(Pair::getKey,Collectors.toSet()));失败并显示“无法从静态上下文引用非静态方法”:Map>result=myStream.collect(Collectors.groupingBy(Pair::getKey,Pair::getValue,Collectors.toSet()));我做错了什么? 最佳答案

java - 对序列进行分组是具有给定总和的子序列,并具有字典序优先级

我正在寻找一种方法来搜索给定序列中的子序列,该子序列总和为给定数字(sum,此处为4)并具有字典序优先级。以下面的例子为例:1,2,2,4,1,1不同的子序列可以相加为4.例如1,2,1,2,22,1,1.如果存在多个这样的序列,则应返回相应索引数组的按字典顺序排列的第一个:因此,如果可以找到具有第一个元素的此类序列,则必须返回该序列,如果没有,则瞄准第二个和所以一个(迭代(采用下一个)和递归(在选择第一个之后,下一个但第一个也应该最接近序列的头部)。所以对于这个例子,我们选择1,2,1.现在2,4,1离开了。如果我们重复这个问题,我们将无法与2匹配。:2,4大于4和2,1小于4.因此

Java 8 并行流并发分组

假设我有一个类ClassPerson{Stringname;Stringuid;Stringphone;}我正在尝试按类(class)的所有领域进行分组。我如何在JAVA8中使用并行流来转换一个ListintoMap>其中映射的键是类中每个字段的值。JAVA8以下示例按单个字段分组,我如何将一个类的所有字段放入单个Map中?ConcurrentMap>byGender=roster.parallelStream().collect(Collectors.groupingByConcurrent(Person::getGender)); 最佳答案

Java 8 Streams - 分组为单个值

这个问题在这里已经有了答案:Java8ListintoMap(23个回答)关闭2年前。我目前正在使用List>我试图在map中对各种键进行分组。这似乎可以很好地使用Java8Stream小号:Map>>>collect=list.stream().collect(Collectors.groupingBy(item->item.get("key1"),Collectors.groupingBy(item->item.get("key2"))));不出所料,这给了我一个Map>>>这适用于可能的分组结果大于1的情况。例如,我有各种示例,其中完成的分组将总是导致最低级别列表中的单个项目。行

Java 收集 `set` 的分组和映射,但如果所有值都是 `null` 则需要一个空集

在我的Java11应用程序中,我想从存储库获取产品更新。一个产品更新有一个updateId和一个要更新的productIds列表。如果没有应该更新的产品编号以使用updateId=X更新,我仍然想写入另一个表,我已经处理了更新X;updateStatusRepository.setStatusProcessing(updateId)和updateStatusRepository.setStatusProcessed(updateId)仍应为此updateId调用。如果存在产品更新,它们应该在ProductProcessingService中进行处理。现在,groupingBy和mapp

Java 流 |按相同元素分组

我有一个单词流,我想根据相同元素(=单词)的出现对它们进行排序。例如:{你好,世界,你好}到Map>你好,{你好,你好}世界,{世界}到目前为止我有什么:Map>list=streamofWords.collect(Collectors.groupingBy(???));问题一:stream好像丢失了他在处理Strings的信息,所以编译器强制我改类型为Object,List问题2:我不知道在括号内放什么来按同一事件对它进行分组。我知道我能够处理lambda表达式中的单个元素,但我不知道如何到达每个元素“外部”以检查是否相等。谢谢 最佳答案

Java 8 lambdas 按多个字段分组

我有一个要对其执行某些分组的pojo列表。像这样的东西:publicclassPojo{privatefinalCategorycategory;privatefinalBigDecimalsomeValue;}publicclassCategory{privatefinalStringmajorCategory;privatefinalStringminorCategory;}我想要一个Map>>关键是majorCategory值是Map用keyminorCategory值是List的Pojo所说的对象minorCategory.我打算使用Java8lambda来实现这一点。我可以通

java - Stream 分组后不保留顺序

我有一个列表名称availableSeats我正在按blockIndex属性进行排序和分组,如下所示:availableSeats.stream().sorted(Comparator.comparing(SeatedTicketAssignment::getBlockIndex)).collect(Collectors.groupingBy(SeatedTicketAssignment::getBlockIndex)).forEach((block,blockAssignments)->{//Restofthecode}问题是分组依据的结果没有按照blockIndex排序。

Java 8 Lambda(一步分组和归约)

假设我有一个Pair对象列表,List>listOfPairs=//somelistofpairs;我想将此列表分组为Map>.目前,我可以分两步完成。第一步按A分组,返回aMap>如下:Map>intermediateStep=listOfPairs.stream().collect(Collectors.groupingBy((Pair::getLeft),Collectors.toSet()));然后我流式传输上面映射的入口集并将它们收集到所需的最终结果中,主要是通过将每个Pair对象映射到它的B值,并将它们收集到一个集合中:Map>finalResult=intermediat

java - 通过 hashmap 循环将相同键的值分组为 <key, list<values>> 对

我一直在努力想出一种方法来创建一个HashMap,该HashMap将具有相同键的值分组(到列表中)。这就是我的意思:假设我有以下键和值:ValueKey*SorryIgotthecolumnsswapped110111112220330331我想把这些值放到一个Hashmap>因此它将值分组到具有相同键的列表整数中,如下所示:(1,{10,11,12}),(2,{20}),(3,{30,31})现在键和值存储在一个Hashmap我不知道如何循环遍历此Hashmap以使用键:值列表对创建新的Hashmap。有人对此主题有好的方法吗? 最佳答案