gpt4 book ai didi

arraylist - 如何根据其对象属性值从ArrayList中获取最小值/最大值?

转载 作者:行者123 更新时间:2023-12-01 08:46:20 36 4
gpt4 key购买 nike

我要实现的是从ArrayList<Object>获取对象的min/max属性值。例如,如果Object具有weight属性(浮点型),则我想要列表中最重的对象。

我试图实现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()
}

来自重复帖子的特定问题并未向我展示如何基于Float获得最大/最小值(value)。那就是问题所在。如果我要修改Comparator,则它仅接受Int。我不能使用该流功能,因为我的应用程序适用于API 23+,而不是24+

最佳答案

我认为您正在寻找 minBy maxBy :

 val minObject: CustomObject? = arrayList.minBy { it.floatVal1 }
val maxObject: CustomObject? = arrayList.maxBy { it.floatVal1 }

关于arraylist - 如何根据其对象属性值从ArrayList中获取最小值/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52466209/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com