如何从 Groovy 中的组数组中获取最小值和最大值
How to get min and max value from a group array in Groovy
我是 Groovy 的新手,我不知道从哪里开始解决这个问题。
我有一个 xml 文件,其中包含多个带有 rid、id 和日期的条目。
我已经设法将元素放入一个数组中,我想提取按每个 rid 分组的 rid、最小日期和最大日期。如果组中只有一个条目,则最小和最大日期将相同。
Data:
1,1234,2022010101;
2,1235,2022020202;
2,1236,2022030303;
Preferred output:
1,2022010101,2022010101;
2,2022020202,2022030303;
尝试这样的事情:
def dataLines = [
[1,1234,2022010101],
[2,1235,2022020202],
[2,1236,2022030303]
]
def output = dataLines.groupBy { it[0] }.collect { rid, lines ->
def sorted = lines.sort{ it[2] }
[ rid , sorted[0][2], sorted[-1][2] ]
}
output.each { println it }
我是 Groovy 的新手,我不知道从哪里开始解决这个问题。 我有一个 xml 文件,其中包含多个带有 rid、id 和日期的条目。 我已经设法将元素放入一个数组中,我想提取按每个 rid 分组的 rid、最小日期和最大日期。如果组中只有一个条目,则最小和最大日期将相同。
Data:
1,1234,2022010101;
2,1235,2022020202;
2,1236,2022030303;
Preferred output:
1,2022010101,2022010101;
2,2022020202,2022030303;
尝试这样的事情:
def dataLines = [
[1,1234,2022010101],
[2,1235,2022020202],
[2,1236,2022030303]
]
def output = dataLines.groupBy { it[0] }.collect { rid, lines ->
def sorted = lines.sort{ it[2] }
[ rid , sorted[0][2], sorted[-1][2] ]
}
output.each { println it }