Lambda+Stream替换集合中每个对象的指定字段值

  做某项目用的是mongodb数据库,因为Mongodb不像mysql可以联表查询,导致编码中常常会遇到将数据中无意义的ID值转换为可读的名称值。

  java8之前我们的代码是这么写的:

    

  现在我们可以这么写:

  注释掉的代码是开始想实现的,转念一想stream还有.forEach()方法,可以不用重新构造对象,于是就用了下面的方式。

  cacheService.parseGroup()做了缓存处理,这样不必每次都查数据库和进行筛查运算了。

           

  参考文档:  http://www.runoob.com/java/java8-lambda-expressions.html     Java 8 Lambda 表达式

         http://www.runoob.com/java/java8-streams.html                        Java 8 Stream

原文地址:https://www.cnblogs.com/GreenMountain/p/9936212.html

时间: 2024-09-29 20:24:27

Lambda+Stream替换集合中每个对象的指定字段值的相关文章

jmeter--正则提取json串中一个大括号对象里指定字段值的的另一个字段的值

需要提取如图红框_id的值,整个返回里有多个类似的大括号对象: 里面的第一个id的值,但是整个json串不止这么一个,并且只能匹配quality_level是349的这个大括号里的第一个id的值.下面使用3种方法: 第一种:最笨的方法,所有字段都写出来做匹配 {"_id":"(.{10,30}?)","agent":{"_id":"[^"]*?","name":"[^

如何从List集合中删除对象

这个问题看似好像挺简单挺幼稚的,然而就这个幼稚的问题还曾经困扰过我一阵呢,其实犯这个错误的根本原因是我们对于基础知识的理解和掌握上还有不足的表现,基本功有些人总是觉得不重要,认为更多的扩大学习的广度才是最重要的,我认为这是很容易犯的,同时也是很致命的错误观点! 对基础知识掌握不牢靠,或理解不深刻,写出的代码必然会有40%的概率是错误的.低效的,一段代码不是说没有编译错误就一定是对的,不是说简单的运行下就一定是对的,优秀的代码,是经得起"刀山火海"般的考验的("多线程.效率.安

Java中对JSONArray中的对象的某个字段进行排序

需求: 今天调用一个第三方接口,然后返回的是一个josn数组,需要根据里面的"报告日期"报告日期进行由大到小排序,最新的排在前面. 这种别人接口已经开发完成,不能改,所以只有我们自己来排序. 思路一():将josn数组转为list集合,然后获取到里面的每个对象,再获取"报告日期",然后排序,然后对对应的对象排序. 思路二: 实现java的Collections.sort方法,自定义Comparator方法,然后排序. 这样效率比较高. 下面是测试和实现代码. imp

黑马程序员——java——自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序

自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序 import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; //自定义一个比较器 class Mycompare implements Comparator { @Override public int compare(Object o1, Object o2) { // TODO Auto-generated method s

对list集合中的对象进行排序(转载)

原文链接:http://blog.csdn.net/veryisjava/article/details/51675036 Collections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的sort方法 先看一个简单的例子: public static void main(String[] args) { List<Integer> nums = new ArrayList&l

用Scala实现集合中相邻元素间的差值

欢迎转载,转载请注明出处,徽沪一郎. 概要 代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找. 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-b,d-c) 解法 val l1 = 1 to 10 toList val l2 = l1.tail l1.zip(l2).map(p=>(p._2 - p._1) 上述代码即可求出两两差值.代码含义稍作解释: tail表示一个集合中除首元素外的剩余元素,也是一个集合.

Map集合中get不存在的key值

返回的值是null 测试代码 import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); String test = map.get("hello"); System.out.println(test); } } 运行结果为

salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值

注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-from.html 群里面有个小伙伴问了一个关于两个有Dependence关系的Picklist字段如何在Apex中通过control字段的值获取到Dependence字段的值,针对Salesforce配置来说,我们很好配置出两个Dependence字段的关系,通过点击设置一下include关系即可.如

【特性】select语句中使用字符串链接获取字段值失败

坑1 在一个多行的表中,想把其中的一个字段值拿出来,组成一个字符串供后面使用. 按照以往,自己就如以下这么写了: declare @sql varchar(8000) set @sql='insert into XXX values(' select @sql=@sql+''','''+ field from YY 然后没有得到想要的所有行的字符串,第一行之后就没有了. 排查问题: 1. 自己仔细查看了数据,并打印出来,发现这个字段有换行. 于是自己又用replace把字段field的换行符,结