Java-객체 목록에서 null 제거 [중복]
Nov 19 2020
다음과 같이 거대한 크기의 Java 목록 개체가 있습니다.
List<Object[]> res = // repo method that will return query result
res 개체에서 null을 제거해야합니다.
지금까지 아래 방법을 시도했지만 아무것도 작동하지 않는 것 같습니다.
1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));
목록 크기가 커질 것이므로 어떻게 효율적으로 null을 제거 할 수 있습니까?
답변
6 NikolasCharalambidis Nov 19 2020 at 17:48
변경 가능한 목록
항목을 List::removeIf
감지하는 술어와 함께 사용할 수 있습니다 null
.
List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
new Object[] {},
null,
new Object[] {}));
mutableList.removeIf(Objects::isNull);
불변 목록
이 경우 Stream API 또는 for-loop를 사용하여 null이 아닌 요소를 찾아 새 목록에 추가해야합니다.
List<Object[]> immutableList = Arrays.asList(
new Object[] {},
null,
new Object[] {});
List<Object[]> newList = immutableList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());