按条件集对 Scala 列表的元素进行排序
Sort elements of scala list by set of conditions
我有一个 Scala 对象列表,需要根据两个条件对其进行排序。我尝试了sortBy方法对元素列表进行排序,提到了两个feidls,但是排序顺序并不像我预期的那样。
TestObject(name:String,size:Int,length:Double)
val tesList = Vector[TestObject]()
我想根据 -
对列表进行排序
bigger SIZE & bigger LENGTH
我试过了-
tesList.sortBy(p=>(p.size,p.length))
我想对列表中具有最大长度和最大大小的元素进行排序。
使用SortWith
。
您需要定义一个排序函数,该函数将在 SortWith
中使用以确定一个对象是否大于另一个对象。根据功能进行排序。
case class TestObject(name:String,size:Int,length:Double)
val tesList = Vector[TestObject](TestObject("a",4,4), TestObject("a",4,5), TestObject("a",2,5))
//> tesList : scala.collection.immutable.Vector[TestObject]
//| = Vector(TestObject(a,4,4.0), TestObject(a,4,5.0), TestObject(a,2,5.0))
// f and s stands for first object and second object
tesList.sortWith((f,s) => f.size > s.size && f.length > s.length)
//> res0: scala.collection.immutable.Vector[TestObject] = Vector(TestObject(a,4,4.0), TestObject(a,4,5.0), TestObject(a,2,5.0))</p>
<p></pre>
我有一个 Scala 对象列表,需要根据两个条件对其进行排序。我尝试了sortBy方法对元素列表进行排序,提到了两个feidls,但是排序顺序并不像我预期的那样。
TestObject(name:String,size:Int,length:Double)
val tesList = Vector[TestObject]()
我想根据 -
对列表进行排序bigger SIZE & bigger LENGTH
我试过了-
tesList.sortBy(p=>(p.size,p.length))
我想对列表中具有最大长度和最大大小的元素进行排序。
使用SortWith
。
您需要定义一个排序函数,该函数将在 SortWith
中使用以确定一个对象是否大于另一个对象。根据功能进行排序。
case class TestObject(name:String,size:Int,length:Double)
val tesList = Vector[TestObject](TestObject("a",4,4), TestObject("a",4,5), TestObject("a",2,5))
//> tesList : scala.collection.immutable.Vector[TestObject]
//| = Vector(TestObject(a,4,4.0), TestObject(a,4,5.0), TestObject(a,2,5.0))
// f and s stands for first object and second object
tesList.sortWith((f,s) => f.size > s.size && f.length > s.length)
//> res0: scala.collection.immutable.Vector[TestObject] = Vector(TestObject(a,4,4.0), TestObject(a,4,5.0), TestObject(a,2,5.0))</p>
<p></pre>