Java8 컬렉션 팩토리 생성 (List, Map, Set)
- Coding/Java
- 2021. 8. 1.
반응형
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
컬렉션이 의도치 않게 변하는 것을 막을 수 있다. 팩토리 생성은 데이터 처리 형식을 설정하거나, 데이터 변환할 필요가 없을때 사용할 것을 권장한다.
집합 팩토리 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);
반응형
'Coding > Java' 카테고리의 다른 글
[Java8] Map의 forEach, Sort, Remove (0) | 2021.08.02 |
---|---|
List 인터페이스에서 List.of 의 오버로드 vs 가변인수 (0) | 2021.08.01 |
[Java8] Stream counting 개수 얻기 (0) | 2021.07.27 |
[Java] List<String>의 각 원소 고유문자 리턴하기 - Stream 평면화 과정 (flatMap 사용) (0) | 2021.07.26 |
Java8 스트림 사용하여 특정 필드로 구성된 리스트 만들기 (0) | 2021.07.23 |