collectors 相关问题

从Java 8开始,收集器是Stream上的变异还原操作。使用此标记可以了解有关收集器用法的特定问题。

如何使用 Collectors.toMap() 将 List<MyObject> 转换为 Map<MyObject.someField, MyObject.someField>?

我有一个 MyObject 类,例如: 类我的对象{ 字符串名称; 琴弦年龄; 字符串地址; 串卡无; } 我有一个列表,我需要将其转换为一些地图 我有一个类MyObject,例如: class MyObject{ String name; String age; String address; String cardNo; } 我有一个List,我需要将其转换为一些Map。如何使用 Collectors.toMap() 执行此操作? 谢谢 我已经尝试过这样的事情, myObjList.stream().collect( Collectors.toMap( MyObject::getName, MyObject::getAge, (k, v) -> HashMap::new ))); 您可以尝试以下方法: myObjList.stream().collect( Collectors.toMap( MyObject::getName, MyObject::getAge ))); Collectors.toMap已经包含HashMap::new,因此不需要显式指定,如(来自Collectors.java类) public static <T, K, U> Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper) { return new CollectorImpl<>(HashMap::new, uniqKeysMapAccumulator(keyMapper, valueMapper), uniqKeysMapMerger(), CH_ID); } 但是,如果指定了第三个变量,则它应该是 Merge 函数,如下所示: public static <T, K, U> Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction) { return toMap(keyMapper, valueMapper, mergeFunction, HashMap::new); } HashMap::new 也不需要在这里指定。 希望这有帮助。

回答 1 投票 0

如何通过列表向 Collectors.toMap() 添加键和值?

MapemployeesMeetups = new HashMap<>(employeesId.size()); for(字符串员工 ID : 员工 ID) { 列出聚会 = meetupRepository. getAllByEmployeeId(employeeId). 流()....

回答 1 投票 0

使用 Stream 和 java8 以一个字符串返回工资的最小值、最大值、平均值、总和、计数

我有一个以工资为特征的员工列表。 为什么这段代码不起作用? 字符串连接=employees.stream().collect( Collectors.summingInt(Employee::getSalary), 收集...

回答 3 投票 0

JAVA中list.stream()中.collect()方法的问题[重复]

公共课正数{ 公共静态列表正(列表数字){ 返回数字.stream() .mapToInt(整数::valueOf) ...

回答 1 投票 0

如何将 Collectors.toList() 转换为 Stream?

我有这样的方法 公共地图>电话号码(列表> numsList){ 返回 numsList.stream() .flatMap(函数.

回答 0 投票 0

在 Collectors.groupingBy 上应用自定义聚合

我有一张地图 AvsB,其中 A 和 B 是, A类{ 长号; 聚合类型 aggr; } B类{ 长值; } 其中 AggregationType 是一个包含(SUM、AVG、MIN、MAX)的枚举。 我

回答 1 投票 0

根据另一个对象的集合对对象列表进行分组

我想根据另一个对象(条件)的列表对对象列表(促销)进行分组。 条件.java 班级推广{ 字符串 promoId; 字符串 promoDesc; 字符串促销代码;

回答 1 投票 0

将可迭代对象转换为实体列表的有效方法

什么是将可迭代对象转换为实体列表的有效方法? 在下面的代码中。收集到列表的最后一行 - 大数据集(约 400k)需要 ~70 秒 //mongoDB:从集合中读取 它...

回答 1 投票 0

收集器还原功能的区别

我尝试了两种不同的 Java 的 Collectors Reducing 函数,结果有两种,还没有弄清楚为什么。 我有一个行李清单,其中行李是这样定义的 类行李{ 整数; ...

回答 0 投票 0

在 Java8 中将二维字符串数组转换为映射

似乎是一个非常基本的问题,我想将我的二维字符串数组转换为一个以列表作为值的映射。 我试过类似下面的东西: Map> guestMap = 数组 .

回答 1 投票 0

collectors.tomap和HeaderEelement的getValue和getNmae的问题。

当试图重现下面的代码时,编译器对图片中的表达式不满意,Apache HTTPClient DigestAuth不转发Challenge中的 "不透明 "值。

回答 1 投票 0

在Java-8中,将返回的HashMaps收集成一个新的标识符。

我对Java Stream收集器框架不是很熟悉,我想解决一个实际问题,想使用流。下面是实际问题的简化假设场景。我有一个 ...

回答 1 投票 0

Java 8:AveragingDouble和映射到对象的方法

我有一个事务对象的列表,如下所示。列表 transactions = Arrays.asList( new Transaction(brian, 2011, 300, "X", "M1"), new Transaction(...)

回答 1 投票 0

使用Java的lambda和流将文本文件映射到Map上

所以,我的文本文件包含5个字段,我想创建一个Map。 列表 >>从它的,其中Pair是Apache的ImmutablePairhaving 2的实例...。

回答 1 投票 0

为什么Collectors类中toMap方法的Java mapFactory参数需要指定类型?[重复]

下面的代码在我的JDK14中无法编译:Map map = Arrays.asList("this", "is", "just", "an", "example").stream() .collect(Collectors.toMap(w -> w.length(), ...

回答 1 投票 2

将Java-8流的结果分割成成功和失败列表。

我有一个List of Foo,在每个Foo上我应用一个处理器方法来获取ValidItem。如果在处理过程中出现了错误,那么我返回ErrorItem。现在如何处理这个由Java 8流得到的...

回答 1 投票 0

收集Map.Entry的第一个值到地图中

我有以下地图:私有静态地图 创建地图(){ 地图 map = new HashMap<>(); map.put("A", new String[]{null}); map.put("B", new ...

回答 1 投票 0

Java 8流将一个List<Map<>>通过相同的<Key,Value>分组到一个新的List<Map<>&gt。

我有一个List>如。地图 m1 = new HashMap<>(); m1.put("date", "2020.1.5"); m1.put("B", "10"); Map m2 = new HashMap&...

回答 2 投票 0

Java收集返回顶级项目的嵌套地图流

我有以下模型:class Item {字符串名称; ... List 子项; }类SubItem {字符串名称; ...列表 ids; }对于... ] >>

回答 1 投票 0

为什么Collectors类中的toMap方法的Java mapFactory参数需要指定类型? [重复]

map = Arrays.asList(“ this”,“ is”,“ just”,“ an”,“ example”)。stream().collect(Collectors。 toMap(w-> w.length(),...

回答 1 投票 5

© www.soinside.com 2019 - 2024. All rights reserved.