Java8 컬렉션 팩토리 생성 (List, Map, Set)

반응형
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);

 

 

 

반응형

Designed by JB FACTORY