【发布时间】:2018-09-23 12:43:23
【问题描述】:
我想要实现的是从ArrayList<Object> 获取对象的最小/最大属性值。例如,如果Object 具有属性weight(float),我想要列表中最重的对象。
我尝试实现 Comparable 以获取最大/最小值,但由于某种原因,这会返回相同的最小值和最大值。 (我不知道它是否适用于浮动)
val maxVal: Float = arrayList.max().floatVal1
val minVal: Float = arrayList.min().floatVal1
data class CustomObject(var val1: String, var floatVal1: Float , var floatVal2: Float?, var floatVal3: Float?, var floatVal4: Float?): Comparable<CustomObject>{
override fun compareTo(other: CustomObject) = (floatVal1 - other.floatVal1).toInt()
}
来自重复帖子的特定问题并未向我展示如何根据浮点数获取最大值/最小值。那就是问题所在。如果我想修改 Comparator 它只接受 Int。而且我无法使用该流功能,因为我的应用程序适用于 API 23+ 而不是 24+
【问题讨论】:
标签: arraylist kotlin comparable