HashMultimap

프로젝트 가 필요 하기 때문에 자바 코드 를 다시 쓰기 시작 했다.C++는 고정된 STL 세트 가 있 고 자바 의 용 기 는 유연 하 다.가장 기본 적 인 것 은 자바 util.*아래 의 일부 용기 이다.물론 다른 가방 에 도 이 가방 이 각자 의 수 요 를 위해 이 루어 진 용 기 를 계승 했다.
HashMutliMap
STL 에는 MultiMap 이 있 고 자바 의 util 가방 에는 이 용기 가 없습니다.자기가 쓰 고 싶 어도 그 럴 시간 이 없어 서 인터넷 에 찾 아 봤 어 요.구 글 의 guava libary 가방 밑 에 이 용기 가 있 는 것 을 발견 했다.
google 라 이브 러 리 의 다운로드 주소:http://code.google.com/p/guava-libraries/wiki/Release09。
import 의 경 로 는 com.google.comon.collect.Multimap 입 니 다.
이 가방 에서 구 글 은 일련의 인터페이스 와 용 기 를 실현 했다.Multimap 는 정 의 된 인터페이스 로 인 터 페 이 스 를 계승 하여 여러 가지 용 기 를 생 성하 여 매우 편리 하 다.
Multimap 를 계승 하 는 데 는 많은 Multimap 변종 이 있 습 니 다.각각:
1.ArrayListMultimap:
2.ForwardingMultimap:
3.HashMultimap:
4.ImmutableListMultimap:
5.ImmutableMultimap:
6.ImmutableSetMultimap:
7.LinkedHashMultimap:
8.LinkedListMultimap:
9.TreeMultimap:
여 기 는 Hash Multimap 를 예 로 들 어 사용 과정 을 알 아 보 겠 습 니 다.
--정의:
HashMultimap<Integer,Integer> doc_numberic = HashMultimap.create();
map.put(2, 4);
map.put(1, 2);
map.put(1, 3);
map.put(2, 6);
map.put(2, 4);
map.put(11, 2);
map.put(12, 3);
map.put(21, 6);
map.put(6, 7);

--옮 겨 다 니 기:옮 겨 다 닐 수도 있 고 키 값 을 가 져 와 옮 겨 다 닐 수도 있다
    옮 겨 다 니 기 사용 하기:
Iterator iter = map.entries().iterator(); while(iter.hasNext()) { Map.Entry<Integer, Integer> entry = (Map.Entry<Integer, Integer>)iter.next(); System.out.println(String.format("%d:%d", entry.getKey(),entry.getValue()));
}

  :
1:2
1:3
2:4
2:6
21:6
6:7
11:2
12:3

    키 값 을 사용 하여 옮 겨 다 니 면 키 값 은 모든 키 값 의 MultiSet 또는 중복 키 값 이 없 는 KeySet 를 얻 을 수 있 습 니 다.여 기 는 중복 키 값 이 없 는 예 를 사용 합 니 다.
Set<Integer> keys = map.keySet();
for(int key:keys)
{
    String result = String.format("%d:", key);
    Set<Integer> values = map.get(key);
    for(int value:values)
    {
    	   result= result+" "+value;
    }
    System.out.println(result);
}

  : 1: 2 3 2: 4 6 21: 6 6: 7 11: 2 12: 3 

좋은 웹페이지 즐겨찾기