ilot
ilot의 블로그
ilot
전체 방문자
오늘
어제
  • 분류 전체보기 (17)
    • Algorithm (0)
    • Data Structure (0)
    • Database (0)
    • Operating System (0)
    • Network (0)
    • OOP (1)
    • Design Pattern (5)
    • Java (2)
    • Spring (5)
    • Mybatis (1)
    • JavaScript & TypeScript (0)
    • React (0)
    • Coding Test (2)
    • 독후감 (1)
    • 일상 (0)

블로그 메뉴

  • 홈
  • Github

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ilot

ilot의 블로그

[Java] Collection의 of 사용 시 주의할 점
Java

[Java] Collection의 of 사용 시 주의할 점

2022. 10. 26. 23:03

Java 9부터 사용할 수 있는 of를 통해 Map, Set, List 등의 Java Collection을 손쉽게 초기화할 수 있습니다.

 

1. value에 null이 들어가면 안된다.

다만, Map.of(), Set.of(), List.of() 등을 사용할 때, value에 null을 넣게 되면 NullPointerException이 발생합니다.

public class CollectionOfTest {

  @Test(expected = NullPointerException.class)
  public void mapOfTest() {
    Map<String, Object> map = Map.of("key1", null); // NullPointerException 발생
  }

  @Test(expected = NullPointerException.class)
  public void listOfTest() {
    List<String> list = List.of("a", null); // NullPointerException 발생
  }

  @Test(expected = NullPointerException.class)
  public void setOfTest() {
    Set<String> set = Set.of("a", null); // NullPointerException 발생
  }

}

 

2. Map.of()에는 개수 제한이 있다

key를 11개를 넣어보니..
key-value 쌍을 10개까지만 오버라이드 된 것을 확인할 수 있다.

Map.of()에는 개수 제한이 있으므로, 11개 이상의 Map을 초기화 하고 싶다면 Map.ofEntries()를 사용해야 한다.

 

참고로, Set.of()와 List.of()는 파라미터를 가변인자로 받고 있기 때문에, 파라미터 개수 제한이 없다.

List.of()
Set.of()

3. of()와 ofEntries()는 Immutuable 객체를 반환한다.

of와 ofEntries는 Immutable 객체를 반환하므로, 이를 반환받은 객체에 put이나 remove가 불가능하다.

 

@Test(expected = UnsupportedOperationException.class)
public void immutableTest() {
  Map<String, Object> map = Map.of("key01", "a");
  map.put("key2", "test"); // UnsupportedOperationException 발생
}

 

참조 : https://velog.io/@sangwoo0727/Map.of-를-통한-Map-초기화-주의할-점

 

'Java' 카테고리의 다른 글

[Java] 함수형 인터페이스 예시 (Functional Interface)  (0) 2022.09.20
    'Java' 카테고리의 다른 글
    • [Java] 함수형 인터페이스 예시 (Functional Interface)
    ilot
    ilot
    _

    티스토리툴바