我想按顺序打印设置(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 )
}
}
答案 0 :(得分:2)
集合本身没有排序,但您可以使用SortedSet吗?集on the scala webpage.
上有一些不错的文档答案 1 :(得分:2)
集合传统上是无序的,因此元素的插入顺序通常会丢失。列表是有序的,但与集合的不同之处在于它们可以具有重复的元素。
如果您希望在迭代其元素时使用维护插入顺序的Set,则您将要使用LinkedHashSet。
警告:LinkedHashSet是可变的,ListSet是一个不可变的选项,用于存储插入顺序的反转。
答案 2 :(得分:1)
Set是无序数据类型。使用有序集 - 例如SortedSet或TreeSet - 并将其传递给自定义排序算法,以根据它添加到集合中的时间进行排序。
您必须创建自己的数据类型,其中包含您尝试存储的整数值以及表示输入时间的日期属性。
另一个选项 您可以使用ArrayList或其他一些列表类型。而不是直接添加元素,而是调用自己的add方法,该方法使用contains方法检查元素是否已存在。
希望这有帮助。