filter经常使用到,作为一个积累,直接贴代码
实体类
public class User implements Serializable {private String name;private Integer age;private String address;private BigDecimal balance;private Date createTime;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public BigDecimal getBalance() {return balance;}public void setBalance(BigDecimal balance) {this.balance = balance;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +", balance=" + balance +", createTime=" + createTime +'}';}
}
测试类
public static void main(String[] args) {List<User> userList = getUser();//搜索年龄只有100的城市userList = userList.stream().filter(user -> user.getAge() != null && user.getAge().equals(100)).collect(Collectors.toList());userList.stream().forEach(user -> {System.out.println(user.getName());});System.out.println("==========================================");//查找这些城市是否包含了武汉if(userList.stream().filter(user -> user.getName().equals("武汉")).findAny().isPresent()){System.out.println("该列表有有包含武汉!");}//anyMatch判断if(userList.stream().anyMatch(user -> user.getName().equals("武汉"))){System.out.println("该列表有有包含武汉!");}}public static List<User> getUser() {List<User> users = Lists.newArrayList();User user1 = new User();user1.setName("北京");user1.setAge(100);user1.setBalance(new BigDecimal(3000));users.add(user1);User user2 = new User();user2.setName("上海");user2.setAge(200);user2.setBalance(new BigDecimal(2000));users.add(user2);User user3 = new User();user3.setName("广州");user3.setAge(200);users.add(user3);User user4 = new User();user4.setName("深圳");user4.setAge(100);user4.setBalance(new BigDecimal(1000));users.add(user4);User user5 = new User();user5.setName("武汉");user5.setAge(100);user5.setBalance(new BigDecimal(3000));users.add(user5);return users;}
总结
通过条件进行筛选:
userList = userList.stream().filter(user -> user.getAge() != null && user.getAge().equals(100)).collect(Collectors.toList());
list是否包含某个值:
if(userList.stream().filter(user -> user.getName().equals("武汉")).findAny().isPresent()){System.out.println("该列表有有包含武汉!");}//anyMatch判断if(userList.stream().anyMatch(user -> user.getName().equals("武汉"))){System.out.println("该列表有有包含武汉!");}