ImmutableMap

과목
태그
StudyDate

1. [ ImmutableMap 이란 ? ]

Map의 데이터 선언 후 고정되거나 일정하다는 것을 의미하며, 읽기 전용이다.
예를 들어 Map에 요소를 추가, 삭제 및 업데이트를 하려고하면 UnsupportedOperationException이 발생한다. ImmutableMap은 null요소도 허용하지 않음 null 요소로 immutableMap을 만들려고하면 NullPointerException이 throw됩니다. Map에 null요소를 추가하려고하면 UnsupportedOperationException이 발생한다.

2. [ ImmutableMap의 장점 ]

1.
스레드에 안전하다.
2.
메모리를 효율적으로 쓴다.
3.
불변이기에 문제 없이 타사 라이브러리에 전달 할 수 있다.

3. [ Immutable Code Sample ]

ImmutableMap 만들기
1.
Guava의 copyOf() 함수를 사용하는 방법
import com.google.common.collectImmutableMap; import java.util.HashMap; import java.util.Map; class MapUtill { // Function to create ImmutableMap from Map public static<K,T> void IMap(Map<K,T>map) { //Create ImmutableMap from Map Using copyOf() ImmutableMap<K,T> immutableMap = ImmutableMap.copyOf(map); //Print the ImmutableMap System.out.println(ImmtableMap); } public static void main(String[] args) { Map<Integer,String> map = new HashMap<Integer, String> (); map.put(1, "Geeks"); map.put(2, "For"); map.put(3, "Geeks"); //Call IMap Method IMap(map); } } Result = {1 = Geeks, 2 = For, 3 = Geeks}
Java
복사
ImmutableMap에서 Builder() 사용
Guava에서 ImmutableMap 클래스는 Builder()함수를 제공, 이 함수를 통해 새로운 ImmutableMap을 생성하거나 기존 Map또는 둘 다에서 ImmutableMap을 생성할 수 있습니다.
새로운 ImmutableMap 만들기
Class ImmutableMapTest { public static void main(String args[]) { // non-empty Immutable set ImmutableMap<Integer, String> Imap = ImmutableMap<Integer, String>builder() .put(1,"Geeks"); .put(2,"For"); .put(3,"Geeks") .build(); System.out.println(Imap); } } Result = {1 = Geeks, 2 = For, 3 = Geeks}
Java
복사