collectors相关内容

Java Streams:替换 groupingBy 并减少 toMap

我之前问过一个关于增强一些代码的问题,此处.@Holger 给了我正确的回应,他说: 每当您发现自己使用还原收集器时groupingBy,你应该检查toMap是否更合适 这似乎是一种模式!他建议我做的事情非常完美. 这是一个众所周知的模式吗?为什么 toMap 比(在某些情况下)结合 groupingBy 和 reducing 更好? 解决方案 通过使用这两个收集器的经验 ..
发布时间:2021-11-25 19:29:05 Java Web开发

具有空条目值的 Collectors.toMap 中的 NullPointerException

如果其中一个值为 null, Collectors.toMap 会抛出一个 NullPointerException.我不明白这种行为,地图可以包含空指针作为值而没有任何问题.Collectors.toMap 的值不能为空是否有充分的理由? 另外,有没有一个很好的 Java 8 方法来解决这个问题,还是我应该恢复到普通的 for 循环? 我的问题的一个例子: import java ..
发布时间:2021-11-25 14:47:15 Java Web开发

Java中stream.max(Comparator)和stream.collect(Collectors.maxBy(Comparator)的区别

在 Java Streams 中 - stream.max(Comparator) 和 stream.collect(Collectors.maxBy(Comparator)) 在性能方面有什么区别.两者都将根据传递的比较器获取最大值.如果是这种情况,为什么我们需要使用 collect 方法进行收集的额外步骤?我们什么时候应该选择前者和后者?哪些用例场景适合同时使用两者? 解决方案 他们做 ..
发布时间:2021-11-15 00:39:32 其他开发

Java 16的Stream.toList()和Stream.collect(Collectors.toList())的区别?

JDK 16现在直接包含了 toList()方法在 Stream 实例上.在以前的Java版本中,您总是必须使用 collect 方法并提供一个 Collector 实例. 新方法显然减少了要键入的字符.两种方法是可以互换的还是应该注意的细微差别? var newList = someCollection.stream().map(x-> mapX(x)).filter(x-> filt ..
发布时间:2021-05-20 18:32:08 其他开发

Java:将子值作为值分组

比方说,我有一个对象Person,其字段类型为FirstName和LastName.现在,我还有一个 List ,并且我喜欢使用流. 现在,我想生成一个 Map> 以便对具有相同名字的人进行分组.如何在不编写大量代码的情况下进行此操作?到目前为止,我的方法是 personList.溪流().collect(Colle ..
发布时间:2021-05-20 18:32:05 其他开发

Collectors.toSet()是否总是返回HashSet吗?什么合同

Javadoc说 返回一个收集器,该收集器将输入元素累积到一个新的放.对于类型,可变性,可序列化性,或返回的Set的线程安全性;如果更多地控制返回的Set是必需的,使用toCollection(java.util.function.Supplier). 因此, Collectors.toCollection(HashSet :: new)似乎是避免此处出现问题的好主意( 那么,为 ..
发布时间:2021-05-19 18:34:02 其他开发

使用Collectors.toMap返回LinkedHashMap

我该如何转换: 返回this.subjects.entrySet().溪流().collect(Collectors.toMap(e-> getArtistryCopy(e.getKey()),Map.Entry :: getValue)); 要返回LinkedHashMap而不是地图? 如果您需要知道, this.subjects 是 LinkedHashMap ..
发布时间:2021-05-18 20:14:15 其他开发

带有空条目值的Collectors.toMap中的NullPointerException

如果其中一个值为 null ,则 Collectors.toMap 会引发 NullPointerException .我不了解这种行为,地图可以包含空指针作为值,而不会出现任何问题.是否有充分的理由为什么 Collectors.toMap 的值不能为null? 此外,是否有解决此问题的Java 8不错的方法,还是我应该恢复到普通的for循环? 我的问题的一个例子: import ..
发布时间:2021-05-18 18:57:50 其他开发

将整数列表转换为逗号分隔的字符串?

我试图将整数列表转换为用逗号分隔的整数组成的字符串. Collectors.joining(CharSequence delimiter)-返回一个收集器,该收集器以相遇顺序连接由指定分隔符分隔的输入元素. Listi =新的ArrayList();//i.add(null);for(int j = 1; j ..
发布时间:2021-05-16 19:13:22 其他开发

带有多个键的Java 8分组

我正在寻求一些帮助,以将具有多个键的列表中的对象列表进行分组. 基本上,我有一个用户列表,其中包含他们的订单列表,我希望能够使用UserName和Address作为键将它们分组在一起. 示例数据: user123伦敦 ..
发布时间:2021-05-13 20:30:14 其他开发

如何从方法Collectors.groupingBy获取有序的Map类型

我需要按类型将数据列表分为不同的列表,为此,我使用了构造方法 Map>dishMap = menu.stream().collect(Collectors.groupingBy(Dish :: getType)); 但是如何从方法"Collectors.groupingBy"中获取LinkedHashMap而不是HashMap.我在javadoc中发 ..
发布时间:2021-05-13 19:50:02 其他开发

按数组列表分组

我得到了需要分组的对象数组的列表.数组包含不同类型的对象. 这是一个示例: List resultList = query.getResultList(); // call to DB // Let's say the object array contains objects of type Student and Book // and Student has a ..
发布时间:2021-02-11 18:41:55 其他开发

Collector#toList的运行时复杂度

在Java库源代码中,Collectors#toList方法的定义如下: public static Collector> toList() { return new CollectorImpl((Supplier>) ArrayList::new, List::add, ..
发布时间:2021-02-11 18:41:02 其他开发

将Java流计数为整数而不是长整数

我需要计算一些特殊束的出现. Map countBundles(){ return bundles.stream() .bla() .bla() .bla() .collect(groupingBy(Bundle::getId), counting())); } 此代码无法编译,因为 ..
发布时间:2021-02-11 18:40:25 其他开发

使用Java流根据薪水检索员工部门和ID

我有一个员工列表 [employeeId=22, employeeName= Rajan Anand, department= Engineering, salary=1600000] [employeeId=23, employeeName= Swati Patil, department= Testing, salary=800000] [employeeId=27, employe ..
发布时间:2021-02-10 19:00:49 其他开发