- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有更惯用的方法将嵌套的序列序列更改为嵌套的集合?
def toNestedSet[T](tsss: Seq[Seq[Seq[T]]]): Set[Set[Set[T]]] =
tsss.map(_.map(_.toSet).toSet).toSet
最佳答案
这实际上一点也不差(请参阅 my answer here 到类似的问题,以了解有关此方法的一些额外讨论):
trait Setsifier[I, O] { def apply(i: I): O }
object Setsifier {
def apply[I, O](f: I => O) = new Setsifier[I, O] { def apply(i: I) = f(i) }
implicit def base[I](implicit ev: I <:!< Seq[_]) = apply((_: Seq[I]).toSet)
implicit def rec[I, O](implicit s: Setsifier[I, O]) =
apply((_: Seq[I]).map(s(_)).toSet)
}
def setsify[I, O](i: I)(implicit s: Setsifier[I, O]) = s(i)
scala> println(setsify(Seq(Seq(Seq(Seq(1)), Seq(Seq(2, 3))))))
Set(Set(Set(Set(1)), Set(Set(2, 3))))
Set[Set[Set[Set[[Int]]]]
和所有。
<:!<
以上实际上不在标准库中。它在
Shapeless ,但是,或者您可以非常非常轻松地自己定义它:
trait <:!<[A, B]
implicit def nsub[A, B] : A <:!< B = new <:!<[A, B] {}
implicit def nsubAmbig1[A, B >: A] : A <:!< B = sys.error("Don't call this!")
implicit def nsubAmbig2[A, B >: A] : A <:!< B = sys.error("Don't call this!")
关于list - 如何以惯用的方式在 Scala 中创建嵌套的 toSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705163/
为什么此代码不起作用: 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())
我是一名优秀的程序员,十分优秀!