小编Mat*_*hes的帖子

如何在Scala中对可变长度的重复序列进行分组

我有一组在一个模式中重复的整数:

val repeatingSequence = List(1,2,3,1,2,3,4,1,2,1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

当模式重复时,我想将List列出来; 在这种情况下,当序列返回到1时:

val groupedBySequence = List(List(1,2,3), List(1,2,3,4), List(1,2), List(1,2,3,4,5))
Run Code Online (Sandbox Code Playgroud)

请注意,当序列跳回到1时,我正在分组,但序列可以是任意长度.我的同事和我通过添加一个名为'groupWhen'的附加方法解决了这个问题

class IteratorW[A](itr: Iterator[A]) {
  def groupWhen(fn: A => Boolean): Iterator[Seq[A]] = {
    val bitr = itr.buffered
    new Iterator[Seq[A]] {
      override def hasNext = bitr.hasNext
      override def next = {
        val xs = collection.mutable.ListBuffer(bitr.next)
        while (bitr.hasNext && !fn(bitr.head)) xs += bitr.next
        xs.toSeq
      }
    }
  }
}
implicit def ToIteratorW[A](itr: Iterator[A]): IteratorW[A] = new IteratorW(itr)

> repeatingSequence.iterator.groupWhen(_ == 1).toSeq
List(List(1,2,3), List(1,2,3,4), List(1,2), List(1,2,3,4,5))
Run Code Online (Sandbox Code Playgroud)

但是,我们都觉得这里有一个更优雅的解决方案潜伏在收藏库中.

scala scala-collections

6
推荐指数
1
解决办法
858
查看次数

如何使用openssl创建pkcs12信任库

我可以使用keytool命令将Java信任库(仅包含证书,没有私钥的JKS文件)导出到p12文件:

keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -deststoretype PKCS12
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法弄清楚如何使用“ openssl pkcs12”命令创建相同的文件。它允许您传递证书,但是我尝试过的每个选项都要求用户传递私钥。

openssl keystore keytool pkcs#12

3
推荐指数
1
解决办法
9045
查看次数

标签 统计

keystore ×1

keytool ×1

openssl ×1

pkcs#12 ×1

scala ×1

scala-collections ×1