列表中每个版本的记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表中每个版本的记录相关的知识,希望对你有一定的参考价值。

我有一个版本列表

1.0.0.1 - 10
1.1.0.1 - 10
1.2.0.1 - 10

那是我的名单中的30 nr。但我只想展示每种类型的5个最高nr:

1.0.0.5 - 10
1.1.0.5 - 10
1.2.0.5 - 10

我怎样才能做到这一点?最后一个nr可以是任何数字,但只有3个nr

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
答案

仅版本号通常不易进行排序。所以我将它们分成数字并从那里开始工作。例如。

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]

以上是关于列表中每个版本的记录的主要内容,如果未能解决你的问题,请参考以下文章

2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试

在创建视图的片段期间为项目列表中的每个项目设置图像[重复]

从活动更新视图页面中片段中的列表视图

哈斯克尔。我很困惑这个代码片段是如何工作的

片段之间的共享数据(父列表视图和子列表视图)

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段