集合之Stream操作集合
来源:互联网 发布:js绑定事件on方法 编辑:程序博客网 时间:2024/04/29 12:07
public class IntStreamTest { public static void main(String[] args) { IntStream is = IntStream.builder() .add(20) .add(13) .add(-2) .add(18) .build(); //下面调用聚集方法的代码每次只能执行一行// System.out.println("is所有元素的最大值:" + is.max().getAsInt());// System.out.println("is所有元素的最小值:" + is.min().getAsInt());// System.out.println("is所有元素的总和:" + is.sum());// System.out.println("is所有元素的总数:" + is.count());// System.out.println("is所有元素的平均值:" + is.average());// System.out.println("is所有元素的平方是否都大于20:" + is.allMatch(ele -> ele * ele > 20));// System.out.println("is是否包含任何元素的平方大于20:" + is.anyMatch(ele -> ele * ele >20)); //将is映射成一个新Stream,新Stream的每个元素是原Stream元素的2倍+1 IntStream newIs = is.map(ele -> ele * 2 + 1); //使用方法引用的方式来遍历集合元素 newIs.forEach(System.out::println); }}
中间方法:中间操作允许流保持打开状态,并允许直接调用后续方法。上面的map()方法就是中间方法,中间方法的返回值是另外一个流
末端方法:末端方法是对流的最终操作。当对某个Stream执行末端方法后,该流会被“消耗”且不再可用。上面的sum(),count(),average()等方法都是末端方法。
import java.util.Collection;import java.util.HashSet;import java.util.stream.IntStream;public class IntStreamTest { public static void main(String[] args) { Collection<String> books = new HashSet(); books.add(new String("轻量级Java EE企业应用实战")); books.add(new String("疯狂Java讲义")); books.add(new String("疯狂ios讲义")); books.add(new String("疯狂Ajax讲义")); books.add(new String("疯狂Android讲义")); //使用Lambda表达式(目标类型是Predicate)过滤集合// books.removeIf(ele -> ele.length() < 10);// System.out.println(books); //统计书名包含“疯狂”子串的图书数量,filter(Predicate predicate):过滤Stream中所有不符合predicate的元素 System.out.println(books.stream().filter(ele -> ele.contains("疯狂")) .count()); //统计书名包含“Java”子串的图书数量 System.out.println(books.stream().filter(ele -> ele.contains("Java")) .count()); //统计书名字符串长度大于10的图书数量 System.out.println(books.stream().filter(ele -> ele.length() > 10) .count()); //先调用Collection对象的stream()方法将集合转换为Stream //再调用Stream的mapToInt()方法获取原有的Stream对应的IntStream books.stream().mapToInt(ele -> ele.length()) //调用forEach()方法遍历IntStream中每个元素 .forEach(System.out::println); }}
程序只要调用Collection的stream()方法即可返回该集合对应的Stream,接下来就可通过Stream提供的方法对所有集合元素进行处理。
mapToInt:对流中的元素执行一对一的转换,该方法返回的新流中包含了转换生成的所有元素
阅读全文
0 0
- 集合之Stream操作集合
- Java8集合及Stream操作
- 强大的集合操作类Stream(一)
- 强大的集合操作类Stream(二)
- [Java]“语法糖”系列(三)之集合流操作(Stream)[笔记]
- Oracle之集合操作
- 集合之--LinkedList操作
- 集合之--ArrayList操作
- Stream API处理集合
- Stream API处理集合
- JDK1.8 集合操作工具Stream的实例
- [疯狂Java]集合:专门用于聚集操作的一次性集合——Stream(流)
- jQuery之checkbox操作集合
- Python操作Redis之集合
- Scala之旅-集合操作
- Java基础知识之集合操作
- mongdb之集合基本操作
- 集合操作
- Max Factor(找最大素数)
- Andrew NG深度学习专业化课程介绍
- ubuntu16.04搭建php开发环境
- 个人疑问记录
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- 集合之Stream操作集合
- ArrayKeep2N
- poj3233 Matrix Power Series (二分+矩阵+快速幂)
- 《笨办法学python》加分习题9——我的答案
- 十大算法题
- ArrayLowHightOut
- 从外网访问VMware虚拟机的Web服务
- Linux命令更新系统时间,更新所有文件的时间
- js数据类型