Kotlin – 基于对象属性对MutableList进行排序
我有这个令牌对象:
class Token(type: TokenType, value: String, position: IntRange = 0..0)
我声明一个MutableList:
val tokens: MutableList<Token> = mutableListOf() // Mutable List filled
现在我想根据位置IntRange的第一个值对我的列表进行排序。 我试过这样做:
tokens .sortedBy { it.position.first }
但是,在使用it关键字后,我无法访问该对象,所以位置以红色突出显示。
有什么建议么?
该position
是一个参数而不是一个属性 ,通过val
/ var
关键字将其设置为主要构造函数的属性 ,例如:
//makes the parameter to a property by `val` keyword---v class Token(val type: TokenType, val value: String, val position:IntRange = 0..0)
那么你可以按position
排序你的Token
,例如:
tokens.sortedBy { it.position.first }
另一个观察是, sortedBy
返回列表的一个排序副本。 如果你想排序你的可变列表,你应该使用sortBy
函数:
tokens.sortBy { it.position.first } // tokens is sorted now