ArrayList에서 특정값을 remove할때는 remove 메소드를 사용함.
list에 있는값이 obj일때는 remove(지울값 obj);
import java.util.ArrayList;
static ArrayList<String> list = new ArrayList(); } |
결과출력
사과 수박 복숭아 바나나 |
위와 같이 "수박"이란 값을 지우기 위해 remove메소드에 파라미터로 전달!
(list안의 값이 String으로 Obj이기 때문. list안의 값이 숫자일때는 주의! 아래 참조)
list에 있는 값이 숫자값일때는 주의 필요하다!
remove(지울값의 인덱스번호) 로 그냥 숫자로 던지면 idx번호에 해당하는(0-based) 값이 지워짐
remove((Integer)지울숫자) 로 객체 형태로 던지면 해당 객체값에 해당하는 값이 지워짐
ex> list.remove((Integer)3); //(Integer)로 캐스팅하여 obj형태로 던지면 해당 값이 지워짐
import java.util.ArrayList;
static ArrayList<Integer> list = new ArrayList(); } |
출력결과 (인덱스(0-based)가 3인 값 5가 삭제 됨)
0 1 3 5 7 |
위와 같이 list.remove(3);을 했는데 list의 3이란 값이 아닌 인덱스가3(네번째인)인 값 5가 제거 되었다
아래와 같이 list.remove((Integer)3); 로 주면 idx가 3인 값이 아니라 지울값 자체가 3이 되므로 3값이 제거 됨.
import java.util.ArrayList;
static ArrayList<Integer> list = new ArrayList(); } |
출력결과 (값 3이 삭제 됨)
0 1 3 5 7 |
만약 list가 Integer타입으로 되있을때는 list.get(3); 이런식으로 값을 뺄때 Integer형태로 값이 반환되니
Obj가 되니 참고. ex> boolean a = list.remove(list.get(3)); 빨간색 부분의 리턴값이 Integer 타입이니 boolean remove(Object obj) 메소드가 적용되게 됨
이는 ArrayList의 remove메소드의 정의가 아래와 같기 때문!
int remove(int index); //지울값의 인덱스를 인자로 줘서 해당 값을 지우고 해당값을 int형으로 리턴.( 인덱스가 3인 5의 값을 지웠다면 리턴값은 5) 인자로 넘기는 인덱스의 범위가 실제 list의 범위를 벗어나면 IndexOutOfBoundsException 발생.
boolean remove(Object obj); //지울값인 obj를 인자로 줘서 해당값이 list에있고 삭제했으면 true, 해당값이 없으면 false 리턴
'Java & JSP' 카테고리의 다른 글
배열복사, 함수내 변경 총정리 (0) | 2019.08.19 |
---|---|
1의 보수, 2의 보수 활용한 비트 연산 (0) | 2017.03.07 |
Arrays.copyOf , Arrays.copyOfRange 배열 복사 (0) | 2016.03.15 |
2차원 배열 가지고 놀기 (0) | 2015.03.06 |
1차원 배열 가지고 놀기 (0) | 2015.03.06 |
댓글