api 문서
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html
코드 라인을 줄여줄 수 있는 map중의 하나이다. Multimap은 ListMultimap과 SetMultimap 뿐 아니라, 다양한 형태의 Multimap을 지원한다.
Multimap은 키의 값을 Collection으로 저장하고 리턴한다. 따라서, key 충돌은 Collection인 value에 추가된다.
예제코드 #1)
import java.util.Collection;
import org.junit.Test;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class GuavaTest {
@Test
public void test1() {
// Map<String,List<String>> map = new HashMap<String,List<String>>();
Multimap<String, String> family = ArrayListMultimap.create();
family.put("Father Kimchy", "1st Son-Kimchy");
family.put("Father Kimchy", "1st Daughter-Kimchy");
family.put("Father Jason", "1st Son-Jason");
Collection<String> child = family.get("Father Kimchy");
System.out.println(child);
import org.junit.Test;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class GuavaTest {
@Test
public void test1() {
// Map<String,List<String>> map = new HashMap<String,List<String>>();
Multimap<String, String> family = ArrayListMultimap.create();
family.put("Father Kimchy", "1st Son-Kimchy");
family.put("Father Kimchy", "1st Daughter-Kimchy");
family.put("Father Jason", "1st Son-Jason");
Collection<String> child = family.get("Father Kimchy");
System.out.println(child);
child = family.get("Father Jason");
System.out.println(child);
}}
결과
[1st Son-Kimchy, 1st Daughter-Kimchy]
[1st Son-Jason]
예제 코드 #2
Multimap<Object, String> family = ArrayListMultimap.create();
family.put(Lists.newArrayList(1), "1");
System.out.println(family.get(Lists.newArrayList(1)));
결과는
[1]
'general java' 카테고리의 다른 글
[Guava] CacheBuilder, CachLoader 예제 (0) | 2015.04.15 |
---|---|
[Guava] Collections2.filter (0) | 2015.04.14 |
[Guava] 자주 사용하는 Lists api (0) | 2015.04.10 |
[Guava] ImmutableMap, ImmutableSet, ImmutableList 예제 (0) | 2015.04.10 |
[Guava] Iterables.transform 과 removeIf 예제 (0) | 2015.04.10 |