반응형
Collectors.toSet () 및 HashSet
다음 샘플 코드 줄을 가져옵니다.
Set<String> someSet = someColletion.stream().map(p -> p.toString()).collect(Collectors.toSet());
나는 HashSet
. 디버거를 코드로 가져 가면 실제로 HashSet
. java.util.stream.Collectors.toSet()
다음 코드를 살펴 보았습니다 .
public static <T> Collector<T, ?, Set<T>> toSet() {
return new CollectorImpl<>((Supplier<Set<T>>) HashSet::new, Set::add,
(left, right) -> { left.addAll(right); return left; },
CH_UNORDERED_ID);
}
계약은 보장 을 Set
, 구현이 결정한다 HashSet
; 합리적인 것 같습니다. 그러나 내 구현에는 HashSet
오래된 Set
. 의 구현이 권한 범위 내에있는 toSet()
say a를 사용하기로 결정하면 FooSet
내 구현이 손상됩니다.
이 문제에 대한 모범 사례 솔루션은 무엇입니까?
당신은 보장하려는 경우 HashSet
, 사용 Collectors.toCollection(HashSet::new)
.
참고 URL : https://stackoverflow.com/questions/30082555/collectors-toset-and-hashset
반응형
'IT Share you' 카테고리의 다른 글
$ http의 Angularjs 자동 완성 (0) | 2020.12.04 |
---|---|
자바 8 : 병렬 FOR 루프 (0) | 2020.12.04 |
터미널 프롬프트없이 IPython 세션에서 복사하는 방법 (0) | 2020.12.04 |
IE11-CSS 변수에 대한 polyfill / 스크립트가 있습니까? (0) | 2020.12.04 |
파이썬에서 키보드 폴링 (키 누르기 감지) (0) | 2020.12.04 |