java8 lambda表达式应用--获取数组中重复的数据

摘要:
现在已经出java10了。之前趁java8出来的那段时间学习了lambda表达式,最近项目中需要用到在数组中寻找重复数据,按照以前的思维,就是写循环!能解决这个问题,旧的技术确实能解决这个问题,但代码行数和性能不一定有这么好。这就是学习新技术的动力所在吧,不然老是用旧技术,总会有一天发现,旧技术解决不了的问题,而新技术只需要几行代码,这就尴尬了。

现在已经出java 10了。之前趁java8出来的那段时间学习了lambda表达式,最近项目中需要用到在数组中寻找重复数据,按照以前的思维,就是写循环!能解决这个问题,旧的技术确实能解决这个问题,但代码行数和性能不一定有这么好。这就是学习新技术的动力所在吧,不然老是用旧技术,总会有一天发现,旧技术解决不了的问题,而新技术只需要几行代码,这就尴尬了。

获取重复数据,第一步利用java8新特新获取重复数据列表

List<AimsHelperFarmerProperty> repeat=new ArrayList<AimsHelperFarmerProperty>(2);
//获取数据与出现的次数           
Map
<AimsHelperFarmerProperty, Long> map = list.stream().collect(Collectors.groupingBy(p ->p,Collectors.counting())); //利用lambda遍历map
map.keySet().forEach(key
->{ if(map.get(key) >one){ repeat.add(key); } });

参考:

https://www.cnblogs.com/aoeiuv/p/5911692.html

https://blog.csdn.net/doubeizhucele/article/details/43796303

免责声明:文章转载自《java8 lambda表达式应用--获取数组中重复的数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇antd 之TimePicker设置禁用时间Electron 7.x以上版本安装提示错误解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

  在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。本部分关注可以聚合、合并、重塑数据的方法。 1、层次化索引   层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低纬度形式处理高纬度数据。我们来看一个简单的栗子:创建一个Ser...

Android批量插入数据到SQLite数据库

Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。   有时需要把一些数据内置到应用中,常用的有以下2种方式:其一直接拷贝制作好的SQLite数据库文件,其二是使用系统提供的数据库,然...

数据库中varchar类型数据转换为numeric类型

numeric有好几种选择,有整形、小数型等等。都是用cast来实现 前提:A表的ID字段是VARCHAR类型 1.SELECT CAST(ID AS INTEGER) FROM A 2.SELECT CAST(ID AS INT) FROM A 2.SELECT CAST(ID AS DECIMAL(18,X)) FROM A --X指小数位,如果...

删除海量数据之全表删除与部分删除

删除海量数据时,如果想要提升性能,需要考虑的一个重要因素就是:如何减少日志操作? 1. 全表删除全表删除的方式通常有3种:DROP, TRUNCATE, DELETE(1) DROP/TRUNCATEDROP和TRUNCATE是DDL操作,日志量都很少(只有回收数据页的记录,不记录页内每条数据的明细),都释放所有数据页,以及重置IAM、PFS、GAM、SG...

kettle作业(job)调用转换,设置变量,写日志到数据库中【转】

首先建立转换:从数据库表到日志 表输入的设置:   日志设置:   新建job:     转换选择刚才建好的输出日志转换。变量设置如下: 此ID就是转换中的${ID},执行job,可以看到控制台输出日志结果:   黑色字体部分中只写出了id=1的一条记录。   最后补充,将转换的日志写到数据库中:打开转换>ctrl+t>日志选项...

c#使用access数据库时 模糊查询 like 通配符的写法

access通配符为*和? sqlserver通配符为%和_ 在access中使用sql查询语句,进行模糊查询要用:select * from table where name like '*海*' 而在c#中调用该语句却得不到结果,解决办法是c#中使用下面语句:select * from table where name like '%%海%%'...