Java 8 Stream API 之 removeIf


removeIf简化代码

  • 移除所有负数
List<Integer> numbers = Arrays.asList(1, -2, 3, -4, 5);
numbers.removeIf(n -> n < 0);
// 结果: [1, 3, 5]

  • 移除过期的订单
List<Order> orders = getOrders(); // 获取订单列表
orders.removeIf(order -> order.getExpiryDate().isBefore(LocalDate.now()));
// 移除所有过期的订单

  • 移除名称重复的用户
List<UserDTO> users = getUsers();
if (CollectionUtils.isNotEmpty(users)) {
    Set<String> uniqueNames = new HashSet<>();
    users.removeIf(u -> !uniqueNames.add(u.getName()));
}
return users;