Stream流

获取流

public class Streamdemo {public static void main(String[] args) {//所有集合都可以直接创建流List<String> names = new ArrayList<>();Set<String> nameset = new HashSet<>();Stream<String> name =names.stream();Stream<String> nameset1 =nameset.stream();System.out.println(name);//map创建流Map<String,Integer> maps = new HashMap<>();// 键流Stream<String> mapString = maps.keySet().stream();// 值流Stream<Integer> mapValue= maps.values().stream();// 键值对流Stream<Map.Entry<String, Integer>> keyandvalue =  maps.entrySet().stream();//数组流String[] strlist = {"a","b","c"};Stream<String> str1 = Stream.of(strlist);Stream<String> str2 = Arrays.stream(strlist);}
}

常用api


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;public class Streamdeom2 {public static void main(String[] args) {List<String> list = new ArrayList<>();List<String> list1 = new ArrayList<>();Collections.addAll(list,"张*","张**","张***","张****");Collections.addAll(list1,"王*","王**","王***","王****");
//        list.stream().findFirst()list.stream().limit(3).forEach(s->System.out.println(s)); //前三位list.stream().skip(3).forEach(s->System.out.println(s)); //跳过前三位list.stream().filter(s -> s.startsWith("张")).forEach(s->System.out.println(s)); //过滤list.stream().distinct().forEach(s->System.out.println(s)); // 去重list.stream().map(s -> "加工后" + s).forEach(s -> System.out.println(s));  //加工方法list.stream().map(s -> new Student(s)).forEach(s -> System.out.println(s)); //加工到某个对象list.stream().map(Student::new).forEach(System.out::println); //与上一行一致,构造器引用Stream<String> newlist = list.stream();Stream<String> newlis1 = list1.stream();Stream.concat(newlist,newlis1).forEach(s -> System.out.println(s));  //合并流list.stream().sorted((e1,e2)->Double.compare(e1.getMoney() , e2.getMoney()))  //排序list.stream().max((e1,e2)->Double.compare(e1.getMoney() , e2.getMoney())) //取最大值}
}
class Student{private String name;public Student(){};@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +'}';}public Student(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

收集成数组或集合


public class tolistdemo {public static void main(String[] args) {List<String> list = new ArrayList<>();Collections.addAll(list,"王*","王**","王***","王****");Stream<String>  newstream = list.stream().filter(s -> s.startsWith("王"));List<String> list2 = newstream.collect(Collectors.toList()); //转成可变listlist2.add("java");System.out.println(list2);
//        List<String> list2 = newstream.tolist() //转成不可变listStream<String>  newstream1 = list.stream().filter(s -> s.startsWith("王"));Set<String> set1 = newstream1.collect(Collectors.toSet()); //转成setSystem.out.println(set1);Stream<String>  newstream2 = list.stream().filter(s -> s.startsWith("王"));Object[] list3 = newstream2.toArray(); //转成数组System.out.println(Arrays.toString(list3));}
}

异常捕获


public class Trydemo {public static void main(String[] args) {String str = null;try {pritnlen(str);} catch (Exception e) {e.printStackTrace();System.out.println("统一使用捕获所有异常,其他异常捕获了解即可");}finally{System.out.println("最后必执行");}}public static void pritnlen(String s){System.out.println(s.length());}
}

自定义异常捕获

public class Test {public static void main(String[] args) throws defineException {praseint(1);praseint1(-1);}public static void praseint(double d) throws defineException {if(d<0 || d>200){throw new defineException("编译时有异常,且需要把异常throws往上抛");}else {System.out.println("数据正确");}}public static void praseint1(double d) {if(d<0 || d>200){throw new definerunException("运行时有异常,异常throws可不往上抛");}else {System.out.println("数据正确2");}}
}

自动释放资源

package com.ruqi;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;public class Filecopy {public static void main(String[] args) {filecopy("D:\\KwDownload\\song\\新建文本文档.txt","D:\\zhengqinjie\\新建文件夹\\1建.txt");}private static void filecopy(String tagetFile, String afterCopyFile) {//try(资源对象){}try (InputStream in = new FileInputStream(tagetFile);OutputStream out = new FileOutputStream(afterCopyFile);){byte[] buffer = new byte[1024];int len;while ((len = in.read(buffer)) != -1) {out.write(buffer, 0, len);}System.out.println("复制完成");}catch (Exception e ){e.printStackTrace();}}
}

Java-Stream流,异常捕获相关推荐

  1. Java多层的异常捕获

    Java多层的异常捕获 参考文章: (1)Java多层的异常捕获 (2)https://www.cnblogs.com/somedayLi/p/7847136.html 备忘一下.

  2. java Stream 流

    java Stream 流 Stream 流 流的创建 流的转化 Optianal 流的计算 Stream 流 1. Stream的定义 来自数据源的支持聚合操作的元素序列. 即一个流对外提供接口,接 ...

  3. 测试Java Stream流 parralle与 sequential的效率

    测试Java Stream流 parralle与 sequential的效率 实验环境 操作系统:win10 处理器:Intel i5-4200U 2核4线程 Java版本:1.8 实验方案 统计大小 ...

  4. Java stream流式计算详解

    Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...

  5. Java Stream流基础

    Java Stream流基础 何为Steam流? Stream 是对集合数组对象功能的增强,其专注于对集合数组对象进行各种非常便利.高效的聚合操作,或者大批量数据操作.通常我们需要多行代码才能完成的操 ...

  6. java runnable 异常_详解Java中多线程异常捕获Runnable的实现

    详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口 ...

  7. Java Stream流之求和

    Java Stream流之求和 流方式实现 基本数据类型 和 包装类型 的一位数组求和 package top.yangbocsu;import java.util.Arrays;/*** @auth ...

  8. 不可变集合 Stream流 异常

    目录 创建不可变集合 如何创建不可变集合? Stream流 Stream流的概述 Stream流的获取 Stream流的常用API Stream流的综合应用 收集Stream流 异常处理 异常概述.体 ...

  9. Java Stream(流)的分类, 四大基本流的介绍

    上一篇文章已经介绍过什么是流, 以及流的基本概念 http://blog.csdn.net/nvd11/article/details/29917065 本文主要介绍java四大基本流的方法. 一, ...

  10. Java IO流——异常及捕获异常 try…catch…finally

    一.Java IO流 1.概念 在Java中,把不同的输入源 / 输出源(如:键盘.文件.网络链接等)抽象的表述为"流"(stream) 通过 "流" 的形式允 ...

最新文章

  1. python UnicodeEncodeError 编码错误总结
  2. python相比c语言更动态_Python金融大数据分析
  3. 基于Seam+Carving和显著性分析的图像缩放方法MATLAB仿真
  4. 【译】Celeste 手感的 10 个设计细节
  5. 谷歌 I/O 2021 在音视频领域中有哪些技术值得被关注?
  6. Linux下怎么创建和进入带有空格的文件夹
  7. [转]opencv学习资料
  8. 使用aliyun镜像源下载镜像及仓库搭建
  9. 怎样用sql语句复制表table1到表table2的同时复制主键
  10. CI框架精简版教程 最快上手
  11. 28个python爬虫项目,你想要的爬虫知识都准备好了~~
  12. FastStone Capture 9.3 汉化绿色便携版 - 极品屏幕截图工具
  13. 小波变换去噪python_小波去噪方法及步骤_小波去噪方法的比较
  14. 笔记本cpu型号怎么看?笔记本处理器型号的类型与查看方法
  15. openssl 生成csr_如何使用OpenSSL生成证书签名请求(CSR)?
  16. android开发接口调用,Android开发中webService接口调用示例
  17. APS生产排产软件的供应商
  18. Docker容器基础
  19. Easy EDA #学习笔记09# | ESP32 一键下载电路
  20. python 乡镇轮廓 高德_百度高德地图小区景点边界轮廓实现

热门文章

  1. 2022年值得关注的5个区块链项目 数字藏品平台开发搭建
  2. 创新数据库技术 成就IOD愿景携DB2 25载创新 IBM推新“信息议程”
  3. [解决] 警告: 未来的版本中将会删除 NARGCHK。请改用 NARGINCHK 或 NARGOUTCHK。
  4. CAN通信标准帧和扩展帧(全网最透彻解答)
  5. 完善自我----女人是需要男人爱护的!
  6. 总是想起一首歌:多么痛的领悟
  7. Java虚拟机字节码指令
  8. Mac下载安装配置maven
  9. 获取联系人的电话号码
  10. Python练习题1.变量类型练习 华氏温度转摄氏温度 圆面积周长计算 判断闰年