티스토리 뷰

테스트코드 쓰다가 List객체를 만들어야 했음.

보통 아래 방법처럼 작성하곤 했음.

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");

근데 이 짧은 List를 만들때도 여러 라인으로 작성해야 했어서

한줄로 작성할 수 있는 코드를 찾고 있었음

 

그러다  찾은 것이 다음 코드임

List<String> list = Arrays.asList("a","b");

한 줄로 만들 수 있음 ㄷㄷ

 

이제 add하고 remove해봤는데

java.lang.UnsupportedOperationException ㅡㅡ

찾아보니, Arrays.asList로 만든 List는 수정할 수 없다함.

 

이걸 다시 new ArrayList로 감싸면 수정할 수 있다함.

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

 

근데 이게 Exception나지 않는 상황이 있음.

add나 remove가 정상적으로(?) 작동하지 않는 경우는 Exception 나지 않는 듯함.

add는 사실 정상적으로 작동하지 않을 수 없는데

remove는 가지고 있지 않은 원소를 remove 시키면 Exception 나지 않음.

예를 들어, 위 경우 처럼 "a","b"로 이루어진 List인데,

list.remove("c")를 호출하면 어차피 작동하지 않을 꺼라서 Exception 나지 않음.

 

add 메서드를 타고 들어가보면 add 호출하기만 해도 UnsupportedOperationException,

remove 메서드 타고 들어가보면 param과 같은 경우에만 remove를 호출하고 있음

'java' 카테고리의 다른 글

2차원 배열 filter  (0) 2024.11.22
[interview]객체지향 프로그래밍  (0) 2023.05.16
[java]File 이동, 복사  (0) 2022.11.23
[java]String[]의 indexOf  (0) 2022.11.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
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
글 보관함