일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이클립스
- html
- ArrayList
- date
- input
- Java
- 자바
- CSS
- Eclipse
- js
- list
- Maven
- string
- Files
- 인텔리제이
- table
- windows
- Array
- 이탈리아
- IntelliJ
- 자바스크립트
- 테이블
- 문자열
- Button
- javascript
- json
- 배열
- Visual Studio Code
- vscode
- CMD
- Today
- Total
어제 오늘 내일
[Java] ArrayList에서 특정 값 삭제하기 본문
ArrayList에서 특정값을 삭제하는 방법을 소개합니다.
- ArrayList.remove()
- ArrayList.removeAll()
- Iterator.remove()
1. ArrayList.remove()
public E remove(int index)
public boolean remove(Object o)
ArrayList의 remove() 메소드를 사용하면,
특정 index 또는 특정 값을 ArrayList에서 삭제할 수 있습니다.
remove(int index)
remove() 메소드의 파라미터로 int를 전달하면,
해당 index의 값이 삭제됩니다.
remove(Object o)
remove() 메소드의 파라미터로 Object 객체를 전달하면,
ArrayList에서 해당 객체를 찾아서
첫번째로 나오는 값만 삭제합니다.
그리고, 값을 삭제하면 true를 리턴하고,
만약 삭제할 값이 없으면 false를 리턴합니다.
예제 코드 1 - remove(int index)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveElementInArrayList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 4, 3, 2, 1));
// index 1 삭제
list.remove(1);
System.out.println(list); // [5, 3, 2, 1]
}
}
예제 결과 1 - remove(int index)
[5, 3, 2, 1]
list.remove(1);
remove() 메소드에 int 값 1을 전달하였기 때문에,
ArrayList의 1 값이 아닌,
index 1 위치의 4가 삭제되었습니다.
예제 코드 2 - remove(Object o)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveElementInArrayList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 4, 3, 2, 1, 1));
// value가 1인 element 삭제
list.remove(Integer.valueOf(1));
System.out.println(list); // [5, 4, 3, 2, 1]
}
}
예제 결과 2 - remove(Object o)
[5, 4, 3, 2, 1]
list.remove(Integer.valueOf(1));
index 1의 값을 삭제하는 것이 아니라,
ArrayList에서 1 값을 삭제하기 위해서 Integer 객체를 전달하였습니다.
그런데, remove() 메소드는 ArrayList의 첫번째 1만 삭제합니다.
위 예제처럼, 1이 여러번 나올 경우, 1을 모두 삭제하기 위해서는
다음 예제와 같이 반복문을 사용하거나 removeAll() 메소드를 사용해야 합니다.
예제 코드 3 - 특정 값 전체 삭제
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveElementInArrayList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 4, 3, 2, 1, 1));
// value가 1인 element 삭제
while (list.remove(Integer.valueOf(1))) {
};
System.out.println(list); // [5, 4, 3, 2]
}
}
예제 코드 3 - 특정 값 전체 삭제
[5, 4, 3, 2]
while(list.remove(Integer.valueOf(1))) { }
remove(Object o) 메소드는,
ArrayList에서 값이 삭제되면 true를 리턴하고,
삭제할 값이 없으면 false를 리턴하므로,
반복적으로 특정값을 찾아서 삭제해 주기 위해서
while문을 사용하였습니다.
2. ArrayList.removeAll()
public boolean removeAll(Collection<?> c)
removeAll() 메소드는
파라미터로 넘겨 준 Collection 객체에 담긴 element를 모두 삭제합니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveElementInArrayList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 4, 3, 2, 1, 1));
// value가 1, 2인 element 모두 삭제
list.removeAll(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)));
System.out.println(list); // [5, 4, 3]
}
}
결과
[5, 4, 3]
list.removeAll(Arrays.asList(Integer.valueOf(1), Integer.valueOf(2)));
removeAll() 메소드의 파라미터로
Integer 1, 2를 담은 List를 전달하였습니다.
list 에서 Integer 1, 2가 모두 삭제된 것을 확인 할 수 있습니다.
3. Iterator.remove()
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class RemoveElementInArrayList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 4, 3, 2, 1));
// value가 1인 element 삭제
Iterator it = list.iterator();
while (it.hasNext()) {
int n = (Integer) it.next();
if (n == 1) {
it.remove();
}
}
// 결과 출력
System.out.println(list); // [5, 4, 3, 2]
}
}
결과
[5, 4, 3, 2]
it.remove();
Iterator를 이용하여
ArrayList를 순회하면서
Iterator의 remove() 메소드를 이용해서 특정 값을 삭제하였습니다.
remove(), removeAll(), Iterator를 이용해서
ArrayList의 특정 값을 삭제하는 방법을 알아보았습니다.
'IT > Java' 카테고리의 다른 글
[Java] ArrayList의 첫번째, 마지막 index 값 삭제하기 (0) | 2021.05.15 |
---|---|
[Java] ArrayList의 첫번째, 마지막 index 구하기 (0) | 2021.05.15 |
[Java] List에서 특정 값 개수 세기 (0) | 2021.05.06 |
[Java] ArrayList의 맨 앞에 값 / ArrayList 추가하기 (0) | 2021.05.06 |
[Java] List 중복제거 하면서 합치기 (0) | 2021.05.06 |