일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CMD
- json
- vscode
- 문자열
- 이클립스
- 인텔리제이
- Maven
- list
- Visual Studio Code
- windows
- table
- js
- 이탈리아
- IntelliJ
- Array
- Files
- 자바스크립트
- 테이블
- html
- 배열
- string
- javascript
- CSS
- ArrayList
- Eclipse
- input
- Java
- 자바
- date
- Button
- Today
- Total
어제 오늘 내일
[Java] List에서 null 삭제하기 본문
Java List 객체에서 null을 삭제하는 방법입니다.
- List.remove()
- List.removeAll()
- Iterator
1. List.remove()
boolean remove(Object o)
List의 remove(Object o) 메소드는
파라미터로 삭제할 element를 입력받고,
List에서 첫번 째로 찾은 해당 element를 삭제하고,
true를 리턴합니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveNullInList {
public static void main(String[] args) {
// List Data 준비
List<String> list = new ArrayList(Arrays.asList("Hi", null, "Hello", null));
System.out.println("null 삭제 전 : " + list); // null 삭제 전 : [Hi, null, Hello, null]
// null 삭제
while (list.remove(null)) {
}
System.out.println("null 삭제 후 : " + list); // null 삭제 후 : [Hi, Hello]
}
}
결과
null 삭제 전 : [Hi, null, Hello, null]
null 삭제 후 : [Hi, Hello]
위 코드는 remove() 메소드를 이용하여
List의 모든 null을 삭제하는 코드입니다.
while(remove(null)) {}
remove(Object o)는
리스트에서 파라미터로 전달받은 Object o(여기서는 null) 중, 첫번째로 나타나는 값을 삭제하고 true를 리턴합니다.
remove() 메소드가 첫번째로 나타나는 값만을 삭제하기 때문에,
모든 null을 삭제하기 위해서 while 반복문을 사용하였습니다.
list.remove(null)은, list에서 null을 찾아 삭제하고, true를 리턴합니다.
만약, 더 이상 삭제할 null이 list에 남아있지 않으면 false를 리턴하게 되고,
이 때 while문도 종료됩니다.
2. List.removeAll()
boolean removeAll(Collection<?> c)
List의 removeAll() 메소드는
파라미터로 전달된 Collection 객체가 가지고 있는 값이 list에 있으면
이 값들을 모두 list에서 제거합니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class RemoveNullInList {
public static void main(String[] args) {
// List Data 준비
List<String> list = new ArrayList(Arrays.asList("Hi", null, "Hello", null));
System.out.println("null 삭제 전 : " + list); // null 삭제 전 : [Hi, null, Hello, null]
// null 삭제
list.removeAll(Collections.singletonList(null));
System.out.println("null 삭제 후 : " + list); // null 삭제 후 : [Hi, Hello]
}
}
결과
null 삭제 전 : [Hi, null, Hello, null]
null 삭제 후 : [Hi, Hello]
removeAll() 메소드는,
파라미터로 전달된 Collection 객체가 가지고 있는 값을 모두 삭제하기 때문에,
remove() 메소드와 달리 반복문을 따로 작성해주지 않아도 됩니다.
list.removeAll(Collections.singletonList(null));
removeAll() 메소드에 null 값을 가지는 Collection 객체를 전달하였습니다.
Collections.singletonList() 메소드는, 하나의 원소만을 가지는, immutable한 List 객체를 리턴합니다.
따라서, 위코드는 아래와 같이 작성해 주어도 똑같이 동작합니다.
List nullList = new ArrayList();
nullList.add(null);
list.removeAll(nullList);
3. Iterator
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class RemoveNullInList {
public static void main(String[] args) {
// List Data 준비
List<String> list = new ArrayList(Arrays.asList("Hi", null, "Hello", null));
System.out.println("null 삭제 전 : " + list); // null 삭제 전 : [Hi, null, Hello, null]
// null 삭제
Iterator<String> it = list.iterator();
while (it.hasNext()) {
if (it.next() == null) {
it.remove();
}
}
System.out.println("null 삭제 후 : " + list); // null 삭제 후 : [Hi, Hello]
}
}
결과
null 삭제 전 : [Hi, null, Hello, null]
null 삭제 후 : [Hi, Hello]
Iterator를 사용하여
List를 순회하면서 null을 삭제하는 방법입니다.
'IT > Java' 카테고리의 다른 글
[Java] List 2개 합치기 (0) | 2021.05.05 |
---|---|
[Java] 배열 길이 늘리기 (0) | 2021.05.05 |
[Java] 대소문자 구분없이 문자열 비교하기 (0) | 2021.05.04 |
[Java] List에 특정 값이 포함되어 있는지 확인하기 (1) | 2021.05.04 |
[Java] List를 Set으로, Set을 List로 변환하기 (0) | 2021.05.03 |