[JAVA] List 내부에 포함된 null 항목 삭제하기

2021. 8. 18. 15:42
728x90

Java List 객체에서 null인 항목 삭제하기

 

| 문제 상황

DB에서 List 를 꺼내왔는데 해당 컬럼에 null 이 포함되어 있어 정상적으로 코드가 실행되지 않는 문제가 발생

 

| 해결방법

List null 이 있는 경우 null인 항목이 제거된 새로운 List 를 만들어 실행

 

 

방법 1) List.remove()

List를 null이 없을때까지 반복문을 돌려가며 지우기

List<String> list = new ArrayList(Arrays.asList("a", null, "c", "d", null));

while(list.remove(null)){
}

list.remove() 를 실행하면 null 이 포함된 첫번쨰 항목을 제거한 후 true를 리턴한다.

모든 null 항목을 처리하기 위하여 while 문에 넣어 실행하였다.

null값이 제거되면 반복문이 종료된다.

 

방법 2) List.removeAll()

List의 null이 포함된 항목을 한번에 지우기

List<String> list = new ArrayList(Arrays.asList("a", null, "c","d",null));

list.removeAll(Collections.singletonList(null));

removeAll 함수에서는 파라미터로 입력된 리스트에 포함된 항목들을 제거한다.

Collections.singletonList()를 통해 단일 요소를 만들 수 있다. 

Collections.singletonList(null) 이 Arrays.asList(null) 과 같은 역할을 하는 것.

따라서 저렇게 사용하면 null이 포함되어있는 항목들을 제거해주므로 반복문을 사용하지 않아도 됩니다.

 

방법 3) Iterator

List<String> list = new ArrayList(Arrays.asList("a", null, "c","d",null));

Iterator<String> it = list.iterator();
while (it.hasNext()) {
	if (it.next() == null) {
		it.remove();
	}
}

iterator를 이용하여 List의 값을 순회하며 null 인경우 삭제하는 로직이다.

 

 

| 해결

이 방법들 중에서 가장 짧게 코드로 구현할 수 있는 두번째 방법을 이용하여 개발을 진행하였다.

 


참고 : https://hianna.tistory.com/558

반응형

BELATED ARTICLES

more