将scala.collection.immutable.Set变量分配给其他变量

时间:2012-08-20 19:58:20

标签: scala set

我有一个像这样的Set变量

val setValues= Set (10,20,30,40)

我想将其中一个分配给其他变量,例如30。我怎么能这样做?

例如在我们有数组的其他语言中,我们可以写

int a=array(2) 

并将数组的位置3的值赋给变量'a' 但是如何将“Set”值的位置2的值赋给其他变量或者检查它是否等于80?

我试过例如setValues(2),setValues-> 2但是在这个例子中结果不是30

3 个答案:

答案 0 :(得分:3)

Set =无序集。 Seq =可索引序列

val seqValues = Seq(10,20,30,40)
seqValues(2)

为了获得更好的性能,请使用具有快速访问权限的IndexedSeqseqValues(2)seqValues.apply(2)的缩写。

答案 1 :(得分:2)

集合是无序的,所以你需要一些方法来挑选一个特定的元素 - 但如果你已经拥有那个确切的元素,你就不需要从集合中获取它(你已经得到了它!)。也许

val x = Set((0,"fish"),(1,"dish"),(2,"wish")).find(_._1 == 1).get

是你想要的(即find一个服从某些条件而不是完全相等的元素;这会返回Option,如果找到它,你可以get吗?

答案 2 :(得分:0)

琐碎的答案?

val value = Set (10,20,30,40)
val variable = 30

您需要更具体地说明用于选择将哪个项目设置为变量的标准。使用Set时,您不能选择第一个或最后一个项目,因为Set是无序的。但可以,例如将变量设置为max或min:

val variable = value.max