<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 325,  comments - 25,  trackbacks - 0
    *
     * 一、Stream API 的操作步驟:
     *
     * 1. 創建 Stream
     *
     * 2. 中間操作
     *
     * 3. 終止操作(終端操作)
     */
    public class TestStreamaAPI {
     
     //1. 創建 Stream
     @Test
     public void test1(){
      //1. Collection 提供了兩個方法  stream() 與 parallelStream()
      List<String> list = new ArrayList<>();
      Stream<String> stream = list.stream(); //獲取一個順序流
      Stream<String> parallelStream = list.parallelStream(); //獲取一個并行流
      
      //2. 通過 Arrays 中的 stream() 獲取一個數組流
      Integer[] nums = new Integer[10];
      Stream<Integer> stream1 = Arrays.stream(nums);
      
      //3. 通過 Stream 類中靜態方法 of()
      Stream<Integer> stream2 = Stream.of(1,2,3,4,5,6);
      
      //4. 創建無限流
      //迭代
      Stream<Integer> stream3 = Stream.iterate(0, (x) -> x + 2).limit(10);
      stream3.forEach(System.out::println);
      
      //生成
      Stream<Double> stream4 = Stream.generate(Math::random).limit(2);
      stream4.forEach(System.out::println);
      
     }
     
     //2. 中間操作
     List<Employee> emps = Arrays.asList(
       new Employee(102, "李四", 59, 6666.66),
       new Employee(101, "張三", 18, 9999.99),
       new Employee(103, "王五", 28, 3333.33),
       new Employee(104, "趙六", 8, 7777.77),
       new Employee(104, "趙六", 8, 7777.77),
       new Employee(104, "趙六", 8, 7777.77),
       new Employee(105, "田七", 38, 5555.55)
     );
     
     /*
       篩選與切片
      filter——接收 Lambda , 從流中排除某些元素。
      limit——截斷流,使其元素不超過給定數量。
      skip(n) —— 跳過元素,返回一個扔掉了前 n 個元素的流。若流中元素不足 n 個,則返回一個空流。與 limit(n) 互補
      distinct——篩選,通過流所生成元素的 hashCode() 和 equals() 去除重復元素
      */
     
     //內部迭代:迭代操作 Stream API 內部完成
     @Test
     public void test2(){
      //所有的中間操作不會做任何的處理
      Stream<Employee> stream = emps.stream()
       .filter((e) -> {
        System.out.println("測試中間操作");
        return e.getAge() <= 35;
       });
      
      //只有當做終止操作時,所有的中間操作會一次性的全部執行,稱為“惰性求值”
      stream.forEach(System.out::println);
     }
     
     //外部迭代
     @Test
     public void test3(){
      Iterator<Employee> it = emps.iterator();
      
      while(it.hasNext()){
       System.out.println(it.next());
      }
     }
     
     @Test
     public void test4(){
      emps.stream()
       .filter((e) -> {
        System.out.println("短路!"); // &&  ||
        return e.getSalary() >= 5000;
       }).limit(3)
       .forEach(System.out::println);
     }
     
     @Test
     public void test5(){
      emps.parallelStream()
       .filter((e) -> e.getSalary() >= 5000)
       .skip(2)
       .forEach(System.out::println);
     }
     
     @Test
     public void test6(){
      emps.stream()
       .distinct()
       .forEach(System.out::println);
     }
    posted on 2018-03-06 08:36 長春語林科技 閱讀(130) 評論(0)  編輯  收藏 所屬分類: java8
    <2018年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

     

    長春語林科技歡迎您!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲中文字幕无码av在线| 亚洲VA综合VA国产产VA中| 免费黄色大片网站| 免费大黄网站在线观看| 中文字幕精品无码亚洲字 | 国产成人yy免费视频| 13一14周岁毛片免费| 一区二区无码免费视频网站| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲综合色自拍一区| 亚洲成人精品久久| jiz zz在亚洲| 日韩在线观看视频免费| 美女视频黄的免费视频网页| 2020久久精品国产免费| 免费看小12萝裸体视频国产 | 久久精品国产亚洲综合色| 亚洲男人电影天堂| 日韩亚洲综合精品国产| 国色精品va在线观看免费视频| 69xx免费观看视频| 亚洲国产天堂久久综合| 亚洲天堂久久精品| 18禁亚洲深夜福利人口| 日韩免费在线观看视频| 亚洲色偷精品一区二区三区| 日本在线观看免费高清| 最近中文字幕无免费| 免费成人黄色大片| 亚洲美女aⅴ久久久91| 激情小说亚洲色图| 亚洲av不卡一区二区三区| 五月婷婷亚洲综合| 亚洲精品视频免费观看| 亚洲精品美女久久久久9999| 国产精品亚洲高清一区二区| 一区二区三区亚洲视频| 毛片免费全部免费观看| 免费国产小视频在线观看| 韩国欧洲一级毛片免费| 成人免费午夜视频|