Java8将List转成Map

美凌格栋栋酱
• 阅读 60

在 Java 8 中,使用 Stream API 来处理 List<实体类>,并将实体类中的 rawItemNumber 参数作为键, process 参数作为值。对于相同的 rawItemNumber ,所对应的 process 值通过 “-” 进行拼接。实例如下: // 使用 Stream API 进行处理 Map<String, String> rawItemMap = mesBaseDataList.stream() .collect(Collectors.groupingBy( UBoardKittingData::getRawItemNumber, // 以 rawItemNumber 作为键 Collectors.mapping( UBoardKittingData::getProcess, // 映射为 process Collectors.joining("-") // 使用 "-" 拼接 ) )); 若将上述Map的Value去重在进行拼接需将 Collectors.joining("-") 替换成 Collectors.collectingAndThen( Collectors.toSet(), // 去重 set -> String.join("-", set) // 使用 "-" 拼接 )

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java8新特性
Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str
Wesley13 Wesley13
3年前
Java中ArrayList的向上转型问题(父类与子类的关系)
果然是java都没学好,今天写方法的时候想把方法参数写成List<父类,然后传子类进去统一处理,结果发现报错。丢人地百度了:ArrayList<ChildClass();包括泛型在内的整个作为类型是无法强转成ArrayList<FatherClass 如果想这样使用可以使用extends关键字来限制泛型参数的适用范围 List<T
Stella981 Stella981
3年前
MapReduce之Shuffle,自定义对象,排序已经Combiner
1\.Shuffle:MapReduce的计算模型主要分为三个阶段,Map,shuffle,Reduce。Map负责数据的过滤,将文件中的数据转化为键值对,Reduce负责合并将具有相同的键的值进行处理合并然后输出到HDFS。为了让Reduce可以并行处理map的结果,必须对Map的输出进行一定的排序和分割,然后交个Red
Wesley13 Wesley13
3年前
Java 泛型
命名类型参数推荐的命名约定是使用大写的单个字母名称作为类型参数。这与C约定有所不同(参阅附录A:与C模板的比较),并反映了大多数泛型类将具有少量类型参数的假定。对于常见的泛型模式,推荐的名称是:K——键,比如映射的键。V——值,比如List和Set的内容,或者Map中的值。E
Wesley13 Wesley13
3年前
Java8 新特性之流式数据处理
一.流式处理简介在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java8之前,我们需要通过如下代码实现:List<Inte
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
Java 8新特性之Stream 概念
Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是StreamAPI(java.util.stream.\)。Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用StreamAPI对集合数据进行操作,就类似于使用SQL执行
Wesley13 Wesley13
3年前
Java8新特性学习
1简述公司自年初终于开始使用java8作为项目的标准jdk,在开发过程中,逐渐认识到java8的很多新特性,确实很方便.其中内容的核心,在于函数式编程,即将函数本身作为对象参数去处理.其中涉及到三个关键新特性:1.lambda表达式(及函数式接口)2.stream3.方法引用这三个新特性的使用是相辅相
Wesley13 Wesley13
3年前
Java8 必会的日期处理的实践,必须收藏!
编辑:业余草来源:https://www.xttblog.com/?p4944Java8日期处理Java8推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。Java处理日期、日历
Wesley13 Wesley13
3年前
Java 8 Stream原理解析
说起Java8,我们知道Java8大改动之一就是增加函数式编程,而StreamAPI便是函数编程的主角,StreamAPI是一种流式的处理数据风格,也就是将要处理的数据当作流,在管道中进行传输,并在管道中的每个节点对数据进行处理,如过滤、排序、转换等。首先我们先看一个使用StreamAPI的示例,具体代码如下: !(htt