从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 也不需要在这里指定。 希望这有帮助。
如何通过列表向 Collectors.toMap() 添加键和值?
MapemployeesMeetups = new HashMap<>(employeesId.size()); for(字符串员工 ID : 员工 ID) { 列出聚会 = meetupRepository. getAllByEmployeeId(employeeId). 流()....
使用 Stream 和 java8 以一个字符串返回工资的最小值、最大值、平均值、总和、计数
我有一个以工资为特征的员工列表。 为什么这段代码不起作用? 字符串连接=employees.stream().collect( Collectors.summingInt(Employee::getSalary), 收集...
JAVA中list.stream()中.collect()方法的问题[重复]
公共课正数{ 公共静态列表正(列表数字){ 返回数字.stream() .mapToInt(整数::valueOf) ...
如何将 Collectors.toList() 转换为 Stream?
我有这样的方法 公共地图>电话号码(列表> numsList){ 返回 numsList.stream() .flatMap(函数.
在 Collectors.groupingBy 上应用自定义聚合
我有一张地图 AvsB,其中 A 和 B 是, A类{ 长号; 聚合类型 aggr; } B类{ 长值; } 其中 AggregationType 是一个包含(SUM、AVG、MIN、MAX)的枚举。 我
我想根据另一个对象(条件)的列表对对象列表(促销)进行分组。 条件.java 班级推广{ 字符串 promoId; 字符串 promoDesc; 字符串促销代码;
什么是将可迭代对象转换为实体列表的有效方法? 在下面的代码中。收集到列表的最后一行 - 大数据集(约 400k)需要 ~70 秒 //mongoDB:从集合中读取 它...
我尝试了两种不同的 Java 的 Collectors Reducing 函数,结果有两种,还没有弄清楚为什么。 我有一个行李清单,其中行李是这样定义的 类行李{ 整数; ...
似乎是一个非常基本的问题,我想将我的二维字符串数组转换为一个以列表作为值的映射。 我试过类似下面的东西: Map> guestMap = 数组 .
collectors.tomap和HeaderEelement的getValue和getNmae的问题。
当试图重现下面的代码时,编译器对图片中的表达式不满意,Apache HTTPClient DigestAuth不转发Challenge中的 "不透明 "值。
在Java-8中,将返回的HashMaps收集成一个新的标识符。
我对Java Stream收集器框架不是很熟悉,我想解决一个实际问题,想使用流。下面是实际问题的简化假设场景。我有一个 ...
Java 8:AveragingDouble和映射到对象的方法
我有一个事务对象的列表,如下所示。列表 transactions = Arrays.asList( new Transaction(brian, 2011, 300, "X", "M1"), new Transaction(...)
所以,我的文本文件包含5个字段,我想创建一个Map。 列表 >>从它的,其中Pair是Apache的ImmutablePairhaving 2的实例...。
为什么Collectors类中toMap方法的Java mapFactory参数需要指定类型?[重复]
下面的代码在我的JDK14中无法编译:Map map = Arrays.asList("this", "is", "just", "an", "example").stream() .collect(Collectors.toMap(w -> w.length(), ...
我有一个List of Foo,在每个Foo上我应用一个处理器方法来获取ValidItem。如果在处理过程中出现了错误,那么我返回ErrorItem。现在如何处理这个由Java 8流得到的...
我有以下地图:私有静态地图 创建地图(){ 地图 map = new HashMap<>(); map.put("A", new String[]{null}); map.put("B", new ...
Java 8流将一个List<Map<>>通过相同的<Key,Value>分组到一个新的List<Map<>>。
我有一个List>如。地图 m1 = new HashMap<>(); m1.put("date", "2020.1.5"); m1.put("B", "10"); Map m2 = new HashMap&...
我有以下模型:class Item {字符串名称; ... List 子项; }类SubItem {字符串名称; ...列表 ids; }对于... ] >>
为什么Collectors类中的toMap方法的Java mapFactory参数需要指定类型? [重复]
map = Arrays.asList(“ this”,“ is”,“ just”,“ an”,“ example”)。stream().collect(Collectors。 toMap(w-> w.length(),...