Collectors.toSet() 和 HashSet
2022-08-31 10:18:21
请看下面这行示例代码:
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);
}
合同保证 a ,并实现决定 a ;似乎是合理的。但是,我的实现需要由 a 保证的常数时间查找,而不仅仅是任何旧的 。如果 的实现决定使用 say a ,这完全在其权限范围内,则我的实现受到损害。Set
HashSet
HashSet
Set
toSet()
FooSet
此问题的最佳实践解决方案是什么?