jdk8之stream流新特性
阿新 • • 發佈:2021-01-17
Java 8 API添加了一個新的抽象稱為流Stream,可以讓你以一種宣告的方式處理資料,極大的簡潔了你的程式碼,乾淨,直觀。
遍歷
List<String> lists=Arrays.asList("1","2","3","4");
lists.stream().forEach(System.out::println);
過濾
List<User> users= new ArrayList<User>(); users.add(new User("小明",18)); users.add(new User("老王",45)); users.add(new User("小紅",15)); users.stream().filter(u->u.getAge()>17).forEach(System.out::println);
排序
//根據元素排序 List<Integer> list = Arrays.asList(1,3,40,25,16,17,100); list = list.stream().sorted().collect(Collectors.toList()); System.out.println("正序:"+list); list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); System.out.println("倒序:"+list); //根據屬性排序 List<User> users =new ArrayList(); users.add(new User("小一",18)); users.add(new User("小二",30)); users.add(new User("小三",25)); users.add(new User("小四",60)); users.add(new User("小五",6)); users =users.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList()); System.out.println("屬性升序:"+users); users =users.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList()); System.out.println("屬性降序:"+users);
Map操作
場景:獲取某個屬性的集合
List<User> users =new ArrayList(); users.add(new User("小一",18)); users.add(new User("小二",30)); users.add(new User("小三",25)); users.add(new User("小四",60)); users.add(new User("小五",6)); List<Integer> list =users.stream().map(User::getAge).collect(Collectors.toList()); System.out.println("年齡集合:"+list);
以上列舉了我經常使用的,當然還有其他的,可以根據自己的業務場景進行混合使用。