Java 8之Stream的简单应用
来源:互联网 发布:js 函数使用new的区别 编辑:程序博客网 时间:2024/05/21 09:49
尽管java 8已经出现很久了,但很可惜最近才真正的使用它,特别是其提供的新特性Stream,真的特别强大,也很方便。在网上看了一些资料,发现都讲的特别多,特别泛,很官方。所以就想写一篇十分简单易懂的应用场景。
操作对象
首先提供一个测试用的操作对象CodeItem
public class CodeItem { private String code; private String name; public CodeItem(String code, String name) { this.code = code; this.name = name; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
场景一
现有一个CodeItem列表,需要把其中的code属性单独组成一个列表,特别在很多应用中经常需要将对象列表的ID抽出来。
Stream forEach方法
List<CodeItem> codeItems = Arrays.asList( new CodeItem("3","c"), new CodeItem("4","d"), new CodeItem("5","e"));List<String> codes = new ArrayList<>();codeItems.stream().forEach(x->{ codes.add(codeItem .getCode());});
Stream map 方法
List<CodeItem> codeItems = Arrays.asList( new CodeItem("1","a"), new CodeItem("3","c"), new CodeItem("4","d"), new CodeItem("5","e"));List<String> codes = codeItems.stream().map(codeItem -> codeItem.getCode()).collect(Collectors.toList());
场景二
现有一个CodeItem列表,需要把其中的name属性等于**的对象过滤出一个列表。
Stream filter方法
List<CodeItem> codeItems = codeItems.stream().filter(codeItem -> codeItem.getCode().equals("4")||codeItem.getCode().equals("5")).collect(Collectors.toList());
场景三
现有一个String列表,要获得以某分隔符分隔的字符串,如果字符串列表是[1,2,3],则得到的字符串是”1,2,3”
Stream filter方法
List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");System.out.println(list.stream().map(item -> item).collect(Collectors.joining(",")));
当然Stream的应用远远不止这么多,在这里只是简单的分享最常用的3种方法,上面的三种方法还可以进行组合,大家可以自己研究一下。
0 0
- Java 8之Stream的简单应用
- Java 8 之 Stream 的创建
- JAVA Stream 简单操作
- Java 8系列之Stream的强大工具Collector
- Java 8系列之Stream中万能的reduce
- Java 8系列之Stream的基本语法详解
- Java 8系列之Stream的强大工具Collector
- Java的IO之字节流(stream)
- Java之Lambda表达式和Stream类简单例子
- Java 8之Stream适用场景
- java 8 之stream(一)
- Java 8之Stream适用场景
- Java 8学习之Stream API
- Java 8 之 Stream 操作符
- [Java 缓存] Java Cache之 Guava Cache的简单应用.
- [Java 缓存] Java Cache之 DCache的简单应用.
- [Java 缓存] Java Cache之 Guava Cache的简单应用.
- Java 8 数据流Stream的基本使用
- RxJava的变换操作
- 《C++编程规范——101条规则、准则与最佳实践》笔记003
- 15KW通用变频器的IGBT驱动电路以及制动单元驱动电路
- 85.Insert Node in a Binary Search Tree-在二叉查找树中插入节点(容易题)
- c# listview 点击空白,也不改变焦点
- Java 8之Stream的简单应用
- Spring入门示例
- mysql-理论--事物隔离级别
- PTA_01-复杂度2 Maximum Subsequence Sum
- 正则表达式
- .Net下两种TCP监听服务的对比
- 错误: -source 1.6 中不支持 diamond 运算符的解决办法
- 从基础开始写吧,写一下这段日子学到的一点东西!
- 使用PreparedStatement预编译语句对象