@Data
@AllArgsConstructor
static class Person2{
String name;
Integer age;
}
List<Person2> list = new ArrayList<>();
list.add(new Person2("1", 1000000001));
list.add(new Person2("2", 1000000002));
list.add(new Person2("3", 1000000003));
list.add(new Person2("3", 4));
Integer vv = 1000000003; // 这里如果是int vv . 那就可以用==
Integer vv2 = 4;
// 而Integer中-128到127之外的值都是引用对象,所以==号无法判断相等,导致filter过滤后的值都没能录入,这里应当使用equals判断。
// List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, vv);
Collection<Person2> collect = list.stream().filter(u -> u.getAge() == vv2)
.collect(Collectors.toList());
System.out.println(collect);
stream流使用filter函数避免使用==判断等值
评论
请
登录后发表观点