Java
[Java] List, Map 정적 팩토리 메소드
snail voyager
2023. 9. 10. 15:34
728x90
반응형
컬렉션 팩토리
- 자바 9에서는 컬렉션 객체를 쉽게 만들 수 있는 방법을 제공
- 고정 크기의 리스트를 만들었으므로 요소를 갱신할 수 있지만 추가하거나 삭제 불가 (UnsupportedOperationException 발생)
List<String> friends = Arrays.asList("A", "B", "C");
List 정적 팩토리 메소드
- List.of 팩토리 메소드로 변경할 수 없는 리스트 생성
- 요소를 추가하려면 UnsupportedOperationException 발생
- set() 메서드로 변경하려해도 예외 발생
- null 요소는 금지하므로 의도치 않은 버그를 방지
- List.of 팩토리 메소드는 다양한 오버로드 버전 (최대 10개까지)
- 10개 이상의 요소는 가변인수 버전의 팩토리 메소드 사용
추가 배열을 할당해서 리스트로 감싸기 때문에 리소스 낭비
List<String> friends = List.of("A", "B", "C");
friends.add("D"); //UnsupportedOperationException
Map 정적 팩토리 메소드
- Map.of 팩토리 메서드에 키와 값을 번갈아 제공하는 방법으로 생성
- 10개 초과 요소는 Map.ofEntries 메소드 이용
키와 값을 감쌀 추가 객체 할당 - Map.entry는 Map.Entry 객체를 만드는 팩토리 메소드
Map<String, Integer> ageOfFriends = Map.of("A", 20, "B", 21, "C", 25);
//{A=20, B=21, C=25}
ageOfFriends = Map.ofEntries(Map.entry("A", 30),
Map.entry("B", 31),
Map.entry("C", 33));
//{A=30, B=31, C=33}
728x90
반응형