【问题标题】:Does Scala have a 'unique list' type?Scala 是否有“唯一列表”类型?
【发布时间】:2013-04-04 21:35:36
【问题描述】:

我正在寻找类似 immutable SortedSet 的东西,但我希望元素按照传入构造函数的顺序进行排序。

UniqueList(4,2,3,1,1) // Throws exception
UniqueList(4,2,3,1) // Iterator yields: 4,2,3,1

【问题讨论】:

    标签: scala scala-collections scala-2.10


    【解决方案1】:

    试试collection.mutable.LinkedHashSet - 它具有独特的元素,并且按照添加元素的顺序进行遍历。

    【讨论】:

    • 有不可变的替代方案吗?
    • immutable.ListMap,但它有O(n) 查找时间。看到这个答案:stackoverflow.com/questions/9313866/…
    • 如果我对 Scala 中的 Maps 有误解,请原谅我,但它们不是 key->value 集合吗?我只对价值观感兴趣...
    • 我的意思是immutable.ListSet。在相关问题中,该技术可以以类似的方式应用于集合。
    • 这个问题突出了将这种类型用于插入有序集的问题。项目似乎颠倒了:stackoverflow.com/questions/3481925/ordered-listset
    【解决方案2】:

    ListSet,尽管它的值与传入构造函数的顺序相反。

    scala> import scala.collection.immutable.ListSet
    import scala.collection.immutable.ListSet
    
    scala> ListSet(1,2,3,4)
    res7: scala.collection.immutable.ListSet[Int] = ListSet(4, 3, 2, 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2019-03-28
      相关资源
      最近更新 更多