如何填充Scala集合以获得最小尺寸?

时间:2017-11-01 19:19:29

标签: scala

如何在Scala中确保Seq具有一定的最小长度?

以下代码执行我想要的操作(在arr有三个条目之前添加空字符串),但感觉很笨拙。

scala> val arr = Seq("a")
arr: Seq[String] = List(a)

scala> arr ++ Seq.fill(3-arr.size)("")
res2: Seq[String] = List(a, "", "")

实现这一目标的一种方法是两个序列的合并:从第一个开始,但是如果它用尽,则从第二个继续。什么是这样的方法叫做??

2 个答案:

答案 0 :(得分:1)

我发现这稍微好一些:

scala> (arr ++ Seq.fill(3)("")).take(3)
res4: Seq[String] = List(a, "", "")

甚至更好,谢谢@ thomas-böhm

scala> arr.toArray.padTo(3,"")
res5: Array[String] = Array(a, "", "")

答案 1 :(得分:0)

arr.padTo(3,"")

这太微不足道了。