我已经看过这里的所有例子,没有什么能回答我的问题。我对Groovy很新。
我想创建类似列表或浮点数的数组,价格如239.99。
然后我想将该数组或列表传递给一个方法,该方法将确定该数组或数字列表中的中位数价格。总大小会有所不同。
有没有快速简便的代码可以做到这一点?如何将每个数字添加到数组或列表中,我必须使用双打?
感谢任何帮助,这个让我感到困惑和沮丧。
谢谢!
答案 0 :(得分:1)
以下函数确定非空列表的median。
def median(data) {
def copy = data.toSorted()
def middle = data.size().intdiv(2)
// you can omit the return in groovy for the last statement
data.size() % 2 ? copy[middle] : (copy[middle - 1] + copy[middle]) / 2
}
适用于支持添加和分割的所有类型。
例如:
assert median([1, 7, 4, 3]) == 3.5
assert median([1, 7, 4]) == 4
assert median([1, 7]) == 4
assert median([1]) == 1
assert median([1.7, 3.4, 10.9, 4.2]) == 3.8
就使用列表可以执行的操作而言,请检查Lists overview,然后选择List API。