2013-07-16 2 views
0

ListMultimap<Integer, String>ListMultimapInteger 키와 관련된 값이 1보다 큰 경우 동일한 Integer의 중복을 포함하는 List<Integer>으로 변환하려는 ListMultimap<Integer, String>이 있습니다. 예를 들어, 경우 : [2, 3, 3] : ListMultimap을 중복 키가있는 목록으로 변환 하시겠습니까?

ListMultimap<Integer, String> myMap = {2 -> "foo", 3 -> ("bar1, bar2")}

나는처럼 보이도록 List<Integer> 내 결과를 원한다. 가장 쉬운 방법은 무엇입니까?

감사합니다.

답변

3

multimap.keys().asList() 

(Multimap.keys()Multiset<Integer>, 요소를 반복하는 것을 여기에 참고가 ImmutableListMultimap이있는 경우이 단지 한 줄

Lists.newArrayList(multimap.keys()) 

또는,이 구아바입니다 가정 정확하게 원하는 방식으로 - 즉, 해당 키와 관련된 각 값에 대해 각 키가 한 번씩 나타납니다.)

+0

@JBNizet : 예 uld. 우리가'keys()'를 참조하고 있는데,'keys set()'과는 반대로'Multioset '이다. 이것은'Set '이다. –

+0

예. 방금 실수를하고 내 의견을 삭제했습니다. +1. –

+0

위대한, 간결한 한 줄 솔루션을 주셔서 감사합니다! Multiset을 반복 실행합니다. –

관련 문제