jdk8stream流的大致用法
下面展示一些 代码片
。
public static void main(String[] args) {
ArrayList<User> list1 = new ArrayList<>();
list1.add(new User(8,"张二狗"));
list1.add(new User(10,"迪丽热巴"));
list1.add(new User(3,"王麻子"));
ArrayList<User> list2 = new ArrayList<>();
list2.add(new User("洪七公"));
list2.add(new User("杨幂"));
list2.add(new User("尼古拉斯"));
//集合转流,转集合
List<User> users = list1.stream().filter((User user) -> user.getName().equals("迪丽热巴")).collect(Collectors.toList());
//流
java.util.stream.Stream<User> userStream = list1.stream().filter((User user) -> user.getAge() == 10);
userStream.forEach(System.out :: println);
//集合求最大值
Optional<User> max = list1.stream().max((u1, u2) -> u1.getAge() - u2.getAge());
User user = max.get();
System.out.println(user);
//求和
list1.stream().map(User :: getAge).reduce(Integer::sum);
//比较大小
Optional<Integer> reduce = list1.stream().map(User::getAge).reduce(Integer::compareTo);
Integer integer = reduce.get();
System.out.println(integer);
//分组
Map<Integer, List<User>> collect = list1.stream().collect(Collectors.groupingBy(User::getAge))
}