那些相见恨晚的Java工具类

2021-06-15  本文已影响0人  CL_玲儿

Java工具类简介

CompletableFuture

CompletableFuture的使用

  1. 构造CompletableFuture对象
  1. 返回计算结果

    • get方法,抛出具体的异常

    • join抛出具体的异常

    例子如下:

    CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> {
        for (int i = 0; i < 5000; i ++) {
            System.out.println("future1: " + i);
        }
    });
    
    CompletableFuture<Void> future2 = CompletableFuture.runAsync(() -> {
        for (int i = 0; i < 5000; i ++) {
            System.out.println("future2: " + i);
        }
    });
    
    CompletableFuture<Void> future3 = CompletableFuture.runAsync(() -> {
        for (int i = 0; i < 5000; i ++) {
            System.out.println("future3: " + i);
        }
    });
    
    try {
        future1.get();
        future2.get();
        future3.get();
    }  catch (InterruptedException | ExecutionException e) {
        e.printStackTrace();
    }
    

    输出如下:


  1. 上一阶段的处理完成后的下一阶段处理

    • thenApply方法,接收上一阶段的处理结果,处理后返回

      CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> "hello")
          .thenApply(str -> str + " world!");
      try {
          System.out.println(future.get());
      } catch (InterruptedException | ExecutionException e) {
          e.printStackTrace();
      }
      

      输出:

 hello world!
  1. 计算完成后的结果处理或抛出异常的处理

    • whenComplete方法

      CompletableFuture.supplyAsync(() -> "hello")
          .whenComplete((s, throwable) -> System.out.println(s));
      
      
    输出:
      
      hello
      
    

Stream

stream() − 为集合创建串行流。

parallelStream() − 为集合创建并行流。

Stream的特点

Stream的操作

Stream和集合的相互转化
中间的操作(对流的操作)
终止操作(操作后获得结果)
归约将集合中的所有元素经过指定运算(加减乘除等),折叠成一个元素输出)

Optional

Optional操作

上一篇下一篇

猜你喜欢

热点阅读