Java - Xóa null khỏi danh sách Đối tượng [trùng lặp]
Nov 19 2020
Tôi có một đối tượng danh sách java có kích thước lớn như sau:
List<Object[]> res = // repo method that will return query result
Tôi phải loại bỏ nulls khỏi đối tượng res.
Tôi đã thử các phương pháp dưới đây cho đến nay nhưng dường như không có gì hoạt động:
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
Làm cách nào để loại bỏ nulls một cách hiệu quả vì kích thước danh sách sẽ rất lớn?
Trả lời
6 NikolasCharalambidis Nov 19 2020 at 17:48
Danh sách có thể thay đổi
Bạn có thể sử dụng List::removeIfvới nullcác mục phát hiện vị từ .
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
Danh sách bất biến
Trong trường hợp này, bạn phải sử dụng Stream API hoặc vòng lặp for để tìm các phần tử không rỗng và thêm chúng vào danh sách mới.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());