- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
取下面一行示例代码:
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()
的实现决定使用一个 FooSet
,这是完全在其权利范围内的,那么我的实现就会受到影响。
解决这个问题的最佳实践方法是什么?
最佳答案
如果您想要有保证的 HashSet
,请使用 Collectors.toCollection(HashSet::new)
.
关于java - Collectors.toSet() 和 HashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082555/
为什么此代码不起作用: scala> List('a', 'b', 'c').toSet.subsets.foreach(e => println(e)) :8: error: missing par
试图从字符列表中生成映射到其频率的唯一字符列表 - 例如就像是: List('a','b','a') -> List(('a',2), ('b',1)) 所以,只是在控制台中乱搞,这有效: val l
我正在查看 jdk-8 下的 Collectors.toSet 实现并且几乎看到了显而易见的事情: public static Collector> toSet() { return ne
是否有更惯用的方法将嵌套的序列序列更改为嵌套的集合? def toNestedSet[T](tsss: Seq[Seq[Seq[T]]]): Set[Set[Set[T]]] = tsss.m
取下面一行示例代码: Set someSet = someColletion.stream().map(p -> p.toString()).collect(Collectors.toSet());
为什么类型推断在这里失败? scala> val xs = List(1, 2, 3, 3) xs: List[Int] = List(1, 2, 3, 3) scala> xs.toSet map(
在scala中,为什么toSet()方法混淆了集合中元素的顺序(ListBuffer)? 我可以使用哪个集合来确保每个元素的唯一性并保持其原始顺序? 最佳答案 因为set抽象,是 traversabl
我想根据特定键的属性创建一个值集合。这些方法是这样工作的: Collection getValueOfKey(final Collection input, final String key) {
我想更新我的 JSON 中的一个字段,它是一个包含元素的数组(很简单,嗯?)。 我想将 userid 添加到 reportedUsersIDs数组。 我正在运行的查询(通过 POSTMAN): htt
这个问题在这里已经有了答案: What is the default Set/List implementation with Collectors in Java 8 Stream API? (1
Set接口(interface)不 promise 实现是否允许 null 元素。每个实现都应该在其文档中声明这一点。 Collectors.toSet() promise 返回 Set 的实现,但明
我使用的是 Java 8,第 30 行的代码出现以下错误 The method flatMapping(( dish) -> {}, toSet()) is undefined for the typ
Javadoc 说 Returns a Collector that accumulates the input elements into a new Set. There are no guara
将流的元素收集到集合中时,在流上指定 .distinct() 是否有任何优点(或缺点)?例如: return items.stream().map(...).distinct().collect(to
有人可以解释为什么会发生以下情况吗?我的意思是如果某物的类型是 String ,然后我希望运行 head在上面。但是Set("ab").head有效,而 List("ab").toSet.head.h
为什么类型推断在这里失败? scala> val xs = List(1, 2, 3, 3) xs: List[Int] = List(1, 2, 3, 3) scala> xs.toSet map(
当我尝试使用here is an example on web Hive.box('box_name')。listenable()时,如果没有键,则会发生错误; ════════ Exception
这是 java.util.stream.Collectors 类的 toSet() 方法的实现: public static Collector> toSet() { return new
如果我有一个对象列表(~200 个元素),只有几个唯一对象(~20 个元素)。 我只想拥有独特的值(value)。之间list.stream().collect(Collectors.toSet())
我是一名优秀的程序员,十分优秀!