티스토리 뷰
Given the code fragment:
import java.util.ArrayList;
public class List63 {
public static void main(String[] args) {
ArrayList points = new ArrayList<>();
points.add(1);
points.add(2);
points.add(3);
points.add(4);
points.add(null);
points.remove(2);
points.remove(null);
System.out.println(points);
}
}
What is the result?
A. A NullPointerException is thrown at runtime.
B. [1,2,4]
C. [1,2,4,null]
D. [1,3,4,null]
E. [1,3,4]
F. Compilation fails.
정답: B
해설:
아래와 같이 찍어보면 이해가 쉽다.
ArrayList points = new ArrayList<>();
points.add(1);
points.add(2);
points.add(3);
points.add(4);
points.add(null);
System.out.println(points);
points.remove(2);
System.out.println(points);
points.remove(null);
System.out.println(points);
[1, 2, 3, 4, null]
[1, 2, 4, null]
[1, 2, 4]
즉 첫번째는 ArrayList에 add한거 그대로 찍으면 나오는거고 [1, 2, 3, 4, null]
두번째는 2번째 인덱스(즉, 3)을 삭제하고 좌측으로 미니 [1, 2, 4, null] 출력.
세번째는 null Object를 삭제하니 [1, 2, 4] 가 찍힌다.
참고:
자바 remove 메소드는 아래와 같이 파라미터로 index를 받는게 있고 Object를 받는 것에 따라 2가지 메소드가 있다.
파라미터로 index를 받는 경우
Integer java.util.ArrayList.remove(int index)
- removepublic E remove(int index)
Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).
Specified by:remove in interface List<E>Overrides:remove in class AbstractList<E>Parameters:index - the index of the element to be removedReturns:the element that was removed from the listThrows:IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())
파라미터로 Object를 받는 경우
boolean java.util.ArrayList.remove(Object o)
- removepublic boolean remove(Object o)
Removes the first occurrence of the specified element from this list, if it is present. If the list does not contain the element, it is unchanged. More formally, removes the element with the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))) (if such an element exists). Returns true if this list contained the specified element (or equivalently, if this list changed as a result of the call).
Specified by:remove in interface Collection<E>Specified by:remove in interface List<E>Overrides:remove in class AbstractCollection<E>Parameters:o - element to be removed from this list, if presentReturns:true if this list contained the specified element
'ocajp 자격증 (Oracle Certified Associate Ja' 카테고리의 다른 글
[java] ocajp 문제 풀이 - do while 67 (0) | 2020.03.01 |
---|---|
자바 배열 초기화 (0) | 2020.03.01 |
자바 연산자 우선순위 (0) | 2020.03.01 |
자바 ocjap 문제 해설 - Class 47 (0) | 2020.03.01 |
자바 ocjap 문제 및 해설 - List 81 (0) | 2020.03.01 |
- Total
- Today
- Yesterday
- 라이믹스 모듈
- 자바
- XE
- 포인터
- XE3
- php
- MySQL
- 이클립스
- esql
- 프로씨
- JDBC
- 스크래핑
- 인포믹스
- 오라클
- xe애드온
- Python
- C
- 문자열
- EC
- KG
- 자바 smtp
- xe addon
- proc
- ocjap
- C언어
- 파싱
- 플러터
- ocajp
- 파이썬
- webix
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |