Arrays.asList()
- Arrays.asList()로 반환된 List는 값의 수정이 가능하다.
List<Integer> list = Arrays.asList(1, 2, null);
list.set(1, 10); // OK
- 참고 *
Arrays.asList()가 반환하는 ArrayList 타입은 java.util.ArrayList가 가 아니라 Arrays 내부 클래스입니다. add()와 remove() 메서드는 구현되어 있지 않아서, 배열의 크기 변동과 관련된 행동은 할 수 없습니다.
- Null을 허용한다.
List<Integer> list = Arrays.asList(1, 2, null); // OK
list.contains(null); // Returns false
- 객체를 참조한다.
Integer[] original = {1,2};
List<Integer> newPointer = Arrays.asList(original);
original[0] = 100;
System.out.println(newPointer); // [100, 2]
→ original의 값을 변경하면, newPointer의 값도 변경된다. 반대로, newPointer의 값을 변경하면, original의 값도 변경된다.
List.of()
- List.of()로 반환된 List는 값의 수정이 불가능하다.
List<Integer> list = List.of(1, 2, 3);
list.set(1, 10); // Fails with UnsupportedOperationException
- Null을 허용하지 않는다.
List<Integer> list = List.of(1, 2, null); // Fails with NullPointerException
list.contains(null); // Fails with NullPointerException
- 객체를 참조하지 않고, 독립적인 객체를 만들어낸다.
Integer[] original = {1,2};
List<Integer> list = List.of(original);
original[0] = 100;
System.out.println(list); // [1, 2]
→ original의 값을 변경해도 list의 값이 변경되지 않는다. 그 반대도 마찬가지로 변경되지 않는다.
[Reference]
'JAVA' 카테고리의 다른 글
Enum 조회 성능 향상하기(feat. Map) (1) | 2025.01.21 |
---|---|
stream.toList() 와 .collect(Collectors.toList()) 차이 (0) | 2024.09.30 |
Enum (1) | 2023.09.15 |
equals()와 hashcode() (1) | 2023.09.06 |