Coding/Java
Java8 컬렉션 팩토리 생성 (List, Map, Set)
shbada
2021. 8. 1. 10:43
728x90
반응형
List
- 1) Arrays.asList : 요소 갱신은 가능하나, 추가/삭제할 수 없다.
/* List */
List<String> testList = Arrays.asList("AAA", "BBB", "CCC");
testList.set(0, "DDD"); // 갱신은 가능하다.
// testList.add("DDD"); // 고정 리스트로, 요소를 추가/삭제 할 수 없다.
- 2) HashSet<>(Arrays.asList())
// 리스트를 인수로 받는 HashSet 생성자를 사용하여 생성할 수 있다.
Set<String> testSetList = new HashSet<>(Arrays.asList("AAA", "BBB", "CCC"));
testSetList.add("DDD");
- 3) List.of 팩토리 메소드 : 리스트를 변경할 수 없다. (갱신/추가/삭제 불가능)
/* 변경할 수 없는 리스트 */
List<String> testLit2 = List.of("AAA", "BBB", "CCC");
// testLit2.add("DDD"); // 변경할 수 없는 리스트
System.out.println(testLit2);
List.of 메소드의 오버로딩 vs 가변인수 알아보기
https://devfunny.tistory.com/463
List 인터페이스에서 List.of 의 오버로드 vs 가변인수
List.of 오버로드 List 인터페이스의 of 메소드를 보면 아래와 같이 다양한 오버로드 버전이 있다. static List of() { return ImmutableCollections.emptyList(); } static List of(E e1) { return new Immutable..
devfunny.tistory.com
컬렉션이 의도치 않게 변하는 것을 막을 수 있다. 팩토리 생성은 데이터 처리 형식을 설정하거나, 데이터 변환할 필요가 없을때 사용할 것을 권장한다.
집합 팩토리 Set
/* Set */
Set<String> testSet = Set.of("AAA", "BBB", "CCC", "DDD");
중복이 불가능하고, 오직 고유의 요소만 포함할 수 있다.
맵 팩토리 Map
- 1) Map.of 팩토리 메서드 : 10개 이하의 key-value 쌍을 가진 작은 맵을 생성할때 유용
/* Map */
Map<String, Object> testMap = Map.of("AAA", 10, "BBB", 20, "CCC", 30);
System.out.println(testMap);
// {CCC=30, AAA=10, BBB=20}
- 2) Map.ofEntries 팩토리 메서드 : 가변인수로 구현
import static java.util.Map.entry;
/* Map */
Map<String, Object> testMap2
= Map.ofEntries(entry("AAA", 10),
entry("BBB", 20),
entry("CCC", 30));
System.out.println(testMap2);
반응형