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 長春語林科技 閱讀(123) 評論(0)  編輯  收藏 所屬分類: java8
          <2018年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

           

          長春語林科技歡迎您!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安化县| 梧州市| 昭平县| 开鲁县| 梅河口市| 祁门县| 永清县| 秀山| 忻州市| 合川市| 梁河县| 汾阳市| 长沙市| 乐亭县| 新田县| 海口市| 吉林省| 朝阳市| 龙泉市| 巴林右旗| 乐昌市| 宜兰市| 全州县| 东山县| 泰来县| 武川县| 南川市| 固镇县| 武清区| 阜康市| 临泉县| 伊宁县| 呼和浩特市| 监利县| 苏尼特右旗| 南充市| 嘉鱼县| 荔波县| 中宁县| 保定市| 历史|