Записи каждой версии в списке - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть список версий

1.0.0.1 - 10
1.1.0.1 - 10
1.2.0.1 - 10

Это 30 номеров в моем списке.Но я хочу показать только 5 старших nr каждого вида:

1.0.0.5 - 10
1.1.0.5 - 10
1.2.0.5 - 10

Как я могу это сделать?Последний номер может быть любым числом, но 3-й первый номер только

1.0.0
1.1.0
1.2.0

КОД:

import groovy.json.JsonSlurperClassic 

def data = new URL("http://xxxx.se:8081/service/rest/beta/components?repository=Releases").getText()  


/**
* 'jsonString' is the input json you have shown
* parse it and store it in collection
*/
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)

def list = convertedJSONMap.items.version

list

1 Ответ

0 голосов
/ 15 ноября 2018

Номера версий сами по себе обычно не облегчают сортировку. Так что я бы разбил их на числа и работал оттуда. Э.Г.

def versions = [
"1.0.0.12", "1.1.0.42", "1.2.0.666",
"1.0.0.6", "1.1.0.77", "1.2.0.8",
"1.0.0.23", "1.1.0.5", "1.2.0.5",
]

println(
    versions.collect{ 
        it.split(/\./)*.toInteger()  // turn into array of integers
    }.groupBy{ 
        it.take(2) // group by the first two numbers
    }.collect{ _, vs -> 
        vs.sort().last() // sort the arrays and take the last
    }*.join(".") // piece the numbers back together
)
// => [1.0.0.23, 1.1.0.77, 1.2.0.666]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...