이 게시물에서는 Java에서 Apache Commons Collections를 사용하여 맵을 초기화하는 다양한 방법에 대해 설명합니다.
1. 사용 MapUtils.EMPTY_MAP
Apache Commons Collections 제공 Collections.EMPTY_MAP 그것은 반환 불변 빈 지도. 던진다 UnsupportedOperationException 수정 작업이 수행된 경우.
1
|
Map<String, String> immutableMap = MapUtils.EMPTY_MAP
|
2. 사용 MapUtils.unmodifiableMap() 방법
Apache Commons 컬렉션 MapUtils 클래스 제공 unmodifiableMap() 그것은 반환 수정 불가능한 지도 주어진 지도에 의해 뒷받침됩니다.
Map<String, String> map = MapUtils.EMPTY_MAP;
Map<String, String> unmodifiableMap = MapUtils.unmodifiableMap(map);
그것은 던졌습니다:
1. NullPointerException 지정된 맵이 null인 경우.
2. UnsupportedOperationException 수정 작업이 수행된 경우.
3. 사용 MapUtils.putAll() 방법
Apache Commons 컬렉션 MapUtils 클래스도 제공 putAll(Map<K,V> map, Object[] array) 지정된 어레이의 모든 키와 값을 맵에 넣습니다.
객체 어레이의 첫 번째 항목이 다음을 구현하는 경우 Map.Entry 또는 KeyValue, 키와 값이 해당 개체에서 추가됩니다. 개체 어레이의 첫 번째 항목이 개체 어레이 자체인 경우 서브 어레이의 인덱스 0이 키이고 인덱스 1이 값이라고 가정합니다. 그렇지 않으면 어레이이 대체 인덱스의 키와 값으로 처리됩니다.
예를 들어 색상 맵을 만들려면 다음을 수행합니다.
Map colorMap = MapUtils.putAll(new HashMap(), new String[][] {
{"RED", "#FF0000"},
{"GREEN", "#00FF00"},
{"BLUE", "#0000FF"}
});
또는:
Map colorMap = MapUtils.putAll(new HashMap(), new String[] {
"RED", "#FF0000",
"GREEN", "#00FF00",
"BLUE", "#0000FF"
});
또는:
Map colorMap = MapUtils.putAll(new HashMap(), new Map.Entry[] {
new DefaultMapEntry("RED", "#FF0000"),
new DefaultMapEntry("GREEN", "#00FF00"),
new DefaultMapEntry("BLUE", "#0000FF")
});
다른 유형의 키-값 쌍의 경우:
Map<Integer, String> map = MapUtils.putAll(new HashMap<>(), new Object[][]{
{1, "#FF0000"},
{2, "#00FF00"},
{3, "#0000FF"}
});
그것은 던졌습니다:
1. NullPointerException 지정된 맵이 null인 경우.
2. IllegalArgumentException 서브 어레이 또는 항목 일치가 사용되고 항목이 유효하지 않은 경우.
3. ClassCastException 어레이 내용이 혼합된 경우.
4. 고정 길이의 빈 맵
Apache Commons 컬렉션 MapUtils 수업은 fixedSizeMap() 지정된 맵이 지원하는 고정 길이 맵을 반환하는 메서드입니다.
반환된 맵에서 요소를 추가하거나 제거할 수 없지만 기존 요소를 변경할 수 있습니다(예: Map.put(Object, Object) 방법). 그러나 기본 지도에 대한 모든 변경 사항은 반환된 지도에 반영됩니다. 지도가 던질 것입니다 UnsupportedOperationException 크기 조정 작업이 수행된 경우.
import org.apache.commons.collections4.MapUtils;
import java.util.HashMap;
import java.util.Map;
// Apache Commons Collections를 사용하여 맵 초기화
class Main
{
public static void main(String[] args)
{
Map<String, String> mutableMap = new HashMap<>();
Map<String, String> fixedLenMap = MapUtils.fixedSizeMap(mutableMap);
mutableMap.put("USA", "Washington D.C.");
mutableMap.put("UK", "London");
mutableMap.put("India", "Delhi");
// 맵이 고정 크기이기 때문에 새로운 키/값 쌍을 넣을 수 없습니다.
// 그러나 기존 키에 대해 새 값을 설정할 수 있습니다.
fixedLenMap.put("India", "New Delhi");
// {USA=Washington D.C., UK=London, India=New Delhi}
System.out.println(fixedLenMap);
}
}
5. multimap 사용
Multimap은 맵과 유사하게 키를 값에 매핑하는 컬렉션이지만 각 키는 여러 값과 연결될 수 있습니다. 우리는 사용할 수 있습니다 multimap 각 키에 대한 값 컬렉션을 보유하는 맵을 생성합니다. 의 구현은 단 하나뿐입니다. Multimap 사용 가능 - MultiValueMap 사용하는 ArrayList 기본적으로; 그러나 인스턴스화할 클래스 또는 Collection 인스턴스를 반환하는 팩토리를 지정할 수 있습니다.
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;
class Main
{
// Apache Commons Collection을 사용하는 Java의 multimap
public static void main(String[] args)
{
MultiMap multiMap = new MultiValueMap();
multiMap.put("USA", "NYC");
multiMap.put("USA", "Los Angeles");
multiMap.put("Asia", "Mumbai");
multiMap.put("Asia", "Beijing");
// {USA=[NYC, Los Angeles], Asia=[Mumbai, Beijing]}
System.out.println(multiMap);
}
}
Apache Commons Collections를 사용하여 Java에서 Map을 초기화하는 것입니다.
참조 : https://www.techiedelight.com/ko/initialize-map-using-apache-commons-collections-java/
'Study > Java' 카테고리의 다른 글
[Java] Map 전체 출력(entrySet, keySet, Iterator) (0) | 2022.09.20 |
---|---|
[Java]네이버 번역 파파고 API 적용 및 예제 (0) | 2022.09.15 |
[Java] ApplicationContext란?(BeanFactory와의 차이점) (0) | 2022.09.14 |
[JAVA] ApplicationContextAware 인터페이스 사용법 (0) | 2022.09.14 |
[JAVA] Stream 사용법 및 예제 (0) | 2022.08.31 |
댓글