하지만 특정 국가에서 사용하는 모든 언어를 알고 싶다고 하자. 이 경우 Map<String, Set<String>>이 필요하다. 예를 들면, "Switzerland"에 해당하는 집합은 [French, German, Italian]이다. 먼저, 각 언어에 해당하는 싱글톤singleton 집합을 마련한다. 그런 다음 주어진 국가에서 새로운 언어를 발견할 때마다 기존 집합과 새 집합의 합집합union을 만든다.
Map<String, Set<String>> countryLanguageSets = locales.collect(
Collectors.toMap(
l -> l.getDisplayCountry(),
l -> Collections.singleton(l.getDisplayLanguage()),
(a, b) -> { // a와 b의 합집합
Set<String> r = new HashSet<>(a);
r.addAll(b);
return r; }));
다음 절에서 이러한 맵을 얻는 더 간단한 방법을 알아본다.