当你使用map操作符时,它会将每个用户的输入转换为输出
因此,当u有3个用户时,u会将3个对象映射为null,因此在输出中,u在区分时有3个null,它将是1,因此u应该在区分之前进行过滤
List<User> userList = Arrays.asList(new User(), new User(), new User());
List<String> hobbyList = userList.stream().map(User::getHobby).collect(Collectors.toList());
List<String> distHobbyList = userList.stream().map(User::getHobby).distinct().collect(Collectors.toList());
List<String> filteredDistHobbyList = userList.stream().map(User::getHobby).filter(Objects::nonNull).distinct().collect(Collectors.toList());
System.out.println(hobbyList); // [null, null, null]
System.out.println(distHobbyList); // [null]
System.out.println(filteredDistHobbyList); // []