posts - 325,  comments - 25,  trackbacks - 0

          public class TestStreamAPI1 {
           
           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)
           );
           
           //2. 中間操作
           /*
            映射
            map——接收 Lambda , 將元素轉換成其他形式或提取信息。接收一個函數作為參數,該函數會被應用到每個元素上,并將其映射成一個新的元素。
            flatMap——接收一個函數作為參數,將流中的每個值都換成另一個流,然后把所有流連接成一個流
            */
           @Test
           public void test1(){
            Stream<String> str = emps.stream()
             .map((e) -> e.getName());
            
            System.out.println("-------------------------------------------");
            
            List<String> strList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
            
            Stream<String> stream = strList.stream()
                .map(String::toUpperCase);
            
            stream.forEach(System.out::println);
            
            Stream<Stream<Character>> stream2 = strList.stream()
                .map(TestStreamAPI1::filterCharacter);
            
            stream2.forEach((sm) -> {
             sm.forEach(System.out::println);
            });
            
            System.out.println("---------------------------------------------");
            
            Stream<Character> stream3 = strList.stream()
                .flatMap(TestStreamAPI1::filterCharacter);
            
            stream3.forEach(System.out::println);
           }

           public static Stream<Character> filterCharacter(String str){
            List<Character> list = new ArrayList<>();
            
            for (Character ch : str.toCharArray()) {
             list.add(ch);
            }
            
            return list.stream();
           }
           
           /*
            sorted()——自然排序
            sorted(Comparator com)——定制排序
            */
           @Test
           public void test2(){
            emps.stream()
             .map(Employee::getName)
             .sorted()
             .forEach(System.out::println);
            
            System.out.println("------------------------------------");
            
            emps.stream()
             .sorted((x, y) -> {
              if(x.getAge() == y.getAge()){
               return x.getName().compareTo(y.getName());
              }else{
               return Integer.compare(x.getAge(), y.getAge());
              }
             }).forEach(System.out::println);
           }

          posted on 2018-03-06 08:38 長春語林科技 閱讀(120) 評論(0)  編輯  收藏 所屬分類: java8
          <2018年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

           

          長春語林科技歡迎您!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 韩城市| 新巴尔虎左旗| 大埔县| 崇左市| 建瓯市| 营山县| 宣化县| 阜新市| 光泽县| 建阳市| 汽车| 西吉县| 绵阳市| 南京市| 滨海县| 嘉义县| 井冈山市| 司法| 铜陵市| 永平县| 汤原县| 甘谷县| 明光市| 思茅市| 万全县| 临朐县| 皮山县| 南郑县| 襄垣县| 黄浦区| 洪江市| 湘乡市| 通江县| 曲松县| 锦州市| 承德县| 庄浪县| 沂源县| 龙井市| 高雄市| 通榆县|