在Scala中打印设置

时间:2014-05-16 15:28:53

标签: scala

我想按顺序打印设置(8,9,5,2,6,4,3)。但不按此顺序打印,而是按此顺序打印(9,5,2,6,3) ,4,8)。为什么会这样?

object Main 

{

   def main(args: Array[String])

   {

      val fruit = scala.collection.mutable.Set(8,9,8,5,2,6,4,3,5)

      println( "fruit1.++(fruit2) : " + fruit )

     }

}

3 个答案:

答案 0 :(得分:2)

集合本身没有排序,但您可以使用SortedSet吗?集on the scala webpage.

上有一些不错的文档

答案 1 :(得分:2)

集合传统上是无序的,因此元素的插入顺序通常会丢失。列表是有序的,但与集合的不同之处在于它们可以具有重复的元素。

如果您希望在迭代其元素时使用维护插入顺序的Set,则您将要使用LinkedHashSet

警告:LinkedHashSet是可变的,ListSet是一个不可变的选项,用于存储插入顺序的反转。

答案 2 :(得分:1)

Set是无序数据类型。使用有序集 - 例如SortedSet或TreeSet - 并将其传递给自定义排序算法,以根据它添加到集合中的时间进行排序。

您必须创建自己的数据类型,其中包含您尝试存储的整数值以及表示输入时间的日期属性。

另一个选项 您可以使用ArrayList或其他一些列表类型。而不是直接添加元素,而是调用自己的add方法,该方法使用contains方法检查元素是否已存在。

希望这有帮助。