如何替换 Scala 中排序集中的第一个元素?排序集是否有类似于“补丁”的功能?甚至可能吗?
val a = SortedSet(1,5,6)
val b = a.patch(0, seq[2], 1)
println(b)
结果应该是:
TreeSet(2, 5, 6)
这个怎么样:
scala> val a = SortedSet(1,5,6)
a: scala.collection.SortedSet[Int] = TreeSet(1, 5, 6)
scala> val b = a.drop(1) + 2
b: scala.collection.SortedSet[Int] = TreeSet(2, 5, 6)
注意:您并没有真正替换这里的任何东西(至少不像数组。)您正在做的是使用 aSortedSet
和 usingdrop
删除第一个元素(在这种情况下恰好是排序顺序中的最小值),然后您正在向集合中添加另一个元素。2
仅在第一个位置,因为那是它应该按排序顺序排列的位置。
scala> a.drop(1) + 10
res21: scala.collection.SortedSet[Int] = TreeSet(5, 6, 10)
如您所见,如果您添加10
,它也会按最后的排序顺序放置。
此外,由于集合不能包含重复项,因此请执行以下操作:
scala> a.drop(1) + 6
res22: scala.collection.SortedSet[Int] = TreeSet(5, 6)
删除第一个元素,只留下集合中的两个元素。这是因为6
已经在集合中,所以它没有被添加(同样,集合的一个属性是它不包含重复项。)