下面举例说明,我一直在玩:自定义排序
import collection.immutable.{TreeSet, TreeMap}
val ts = TreeSet(9, 23, 1, 2)
ts
val tm = TreeMap(3 -> "c", 1 -> "a", 2 -> "b")
tm
// convert a map to a sorted map
val m = Map("98" -> List(4, 12, 14), "001" -> List(22, 11))
val t = TreeMap(m.toSeq: _*)
t // sorted by key
// sort an unsorted map
m.toSeq.sortWith((x, y) => x._2(0) < y._2(0))
// add a unsorted map into a sorted map
val m1 = Map("07" -> List(3, 5, 1), "05" -> List(12, 5, 3))
val t1: TreeMap[String, List[Int]] = t ++ m1
t1 // "001" is the first key
我可以使用sortWith
在Map
获得自定义排序,如果我想使用使用不同的排序一个TreeMap什么比默认?
如果我想排序一个更复杂的函数呢?例如,'(x:Int,y:Int)=> {if(x == 3)-1 else if(x == 2 * y)-1 else if(x == 3 * y)0 else 1 }'。 – qed
只要您比较密钥,无论您的订购有多复杂,都无关紧要。我会更新答案来证明这一点。 – tkroman