[转载] Java8新特新--Stream语法应用在ArrayList的元素移除和排序
参考链接: 如何在Java 8中打印Stream的元素
单元测试:
@Test
public void Test02(){
// 源
ArrayList<Integer> IdsSour = new ArrayList<>();
IdsSour.add(5);
IdsSour.add(1);
IdsSour.add(3);
IdsSour.add(2);
IdsSour.add(6);
IdsSour.add(4);
// 目标
List<Integer> IdsDes = new ArrayList<>();
System.out.println("============移除 4 ============");
IdsDes = (ArrayList<Integer>) IdsSour.stream().filter(id->id!=4).collect(Collectors.toList());
for (Integer id : IdsDes) {
System.out.println(id);
}
System.out.println("============移除 4 5 6============\n\n");
int[] ids = new int[]{4,5,6};
//按ID的 大小 从大到小 逆序 排列
IdsDes = (List<Integer>) IdsSour.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
for(int i = 0 ;i < ids.length ; i++){
int ret = ids[i];
//filter的写法 比 直接if判断再remove要含蓄的多,看起来舒服,但是效率不见得有for循环快
IdsDes = (ArrayList<Integer>) IdsDes.stream().filter(id->id!=ret).collect(Collectors.toList());
System.out.println("+++++++++++++++++第"+(i+1)+"次过滤后");
for (Integer id : IdsDes) {
System.out.println(id);
}
}
System.out.println("==================================");
//最后 按自然排序【默认】打印出IDsDes的内容
//先sorted再foreach -- 简单优雅 -- 优雅的背后 必定会有牺牲
IdsDes.stream().sorted().collect(Collectors.toList()).forEach(id->System.out.println(id));
}
运行效果:
[转载] Java8新特新--Stream语法应用在ArrayList的元素移除和排序相关推荐
- java8 stream遍历_Java8新特性:Stream流详解
1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel agg ...
- Java8新特性:Stream详细使用
目录 一.简介 二.创建Stream的常用方法 2.1 使用Stream中的静态方法:of().iterate().generate() 2.2 使用Collection下的 stream() 和 p ...
- Java8 Stream 语法详解 用法实例
本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A ...
- Java8初体验(二)Stream语法详解(转)
本文转自http://ifeve.com/stream/ Java8初体验(二)Stream语法详解 感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 上篇文章Java8初体验( ...
- java8 Stream语法详解
些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Jav ...
- java stream byte_乐字节-Java8新特性之Stream流(上)
上一篇文章,小乐给大家介绍了<Java8新特性之方法引用>,下面接下来小乐将会给大家介绍Java8新特性之Stream,称之为流,本篇文章为上半部分. 1.什么是流? Java Se中对于 ...
- java8 stream 做累加_Java8新特性之Stream(上)|乐字节
上次给大家介绍了Java8新特性之方法引用,大家可以点击回顾下.接下来小乐继续给大家带来Java8新特性之Stream ,流是Java8最重要的内容,小乐准备分上下两部分介绍,今天是上部. 5.1.什 ...
- 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>
需求分析: 有两个Long类型的集合 : List<Long> tagsIds; List<Long> attributesIds; 现在需要将这两个Long类型的集合进行组合 ...
- 【java8新特性】——Stream API详解(二)
一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...
最新文章
- JUC并发编程九 并发架构--循环打印
- D3可视化:(1)初次见面,SVG与D3的魅力
- Collecting package metadata (current_repodata.json): done Solving environment: failed with repodata
- 使用Travis-CI的SpringBoot应用程序的CI / CD
- git 图形化工具 GitKraken 的使用 —— 分支的创建与合并
- mysql left a 10_MySQL基础总结,认真看完这篇就够了!!!
- jira 6.X或confluence5.X linux/centos/ubuntu下设置开启启动
- 2021年,产品需求文档PRD模板
- 支架预压弹性变形值计算_支架预压计算.doc
- Linux虚拟机挂载新的硬盘
- 互联网晚报 | 9月9日 星期四 | 8个电竞项目入选杭州亚运会;联想TruScale正式发布;国民养老保险公司获批筹建...
- JDBC深入浅出-jdbc学习笔记【入门到精通】
- volatile 与诡异事件
- 【毕业季】在校生怎么看待毕业季?
- 游戏服务器编程-iocp及封包处理
- Hutool工具生成二维码
- 13. 线性动态电路的复频域分析
- 生成全排列算法的实现(Johnson-Trotter)
- Pytorch(gpu),cuda,cudnn安装
- typedef——用法总结
热门文章
- 【C语言简介】C语言的前世今生
- css不继承父类样式_提升你的Python编程能力,细说类的继承,拿走不谢
- base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结
- 现代php中文版,现代PHP
- checkbox wpf 改变框的大小_【论文阅读】倾斜目标范围框(标注)的终极方案
- Python拾遗1:collections、itertools和内存io
- Shell脚本多行换行报错:- unrecognized arguments- \
- java biginteger 比较大小,java – 打印非常大的BigIntegers
- 完成数独的算法 python_python实现数独算法实例
- python 命名空间冲突_python-命名空间