Kotlin - 获取Ints的ArrayList中的最大值

时间:2018-05-29 08:57:23

标签: java kotlin

我有这个ArrayList

    var amplititudes : ArrayList<Int> = ArrayList()
    amplititudes.add(1)
    amplititudes.add(2)
    amplititudes.add(3)
    amplititudes.add(4)
    amplititudes.add(3)
    amplititudes.add(2)
    amplititudes.add(1)

现在我想获得最大值,即4.找到最大元素的最简单方法是什么?我知道max()方法,但它会强制我使用带有返回值的?,因为它可能为null。有没有比这更好的解决方案?

3 个答案:

答案 0 :(得分:4)

您可以使用内置功能:

val amplitudes = listOf(1,2,3,4,3,2,1)
val max = amplitudes.max() ?: 0

答案 1 :(得分:4)

max()从Kotlin 1.4开始不推荐使用,请使用maxOrNull()

val list = listOf(10, 2, 33)
val max: Int = list.maxOrNull() ?: 0

答案 2 :(得分:2)

如果您想使用默认比较(例如int s),则可以使用max(),如果您想使用自定义{maxBy,则可以reference document shows使用http://registry.npmjs.org/ 1}}(即算法)来比较值。

请注意,两者都返回selector(在您的情况下),因为集合可能为空(即,没有最大值)