Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 如何在groovy中对下面的列表进行排序_Sorting_Collections_Groovy - Fatal编程技术网

Sorting 如何在groovy中对下面的列表进行排序

Sorting 如何在groovy中对下面的列表进行排序,sorting,collections,groovy,Sorting,Collections,Groovy,我在groovy中有这样一个列表 udbmslList=[ [133, 2011-11-30 00:00:00.0], [141, 2011-11-29 00:00:00.0], [132, 2011-11-28 00:00:00.0], [11, 2011-12-03 00:00:00.0], [119, 2011-12-02 00:00:00.0],

我在groovy中有这样一个列表

 udbmslList=[
           [133, 2011-11-30 00:00:00.0], 
           [141, 2011-11-29 00:00:00.0], 
           [132, 2011-11-28 00:00:00.0], 
           [11, 2011-12-03 00:00:00.0], 
           [119, 2011-12-02 00:00:00.0], 
           [182, 2011-12-01 00:00:00.0], 
           [12, 2011-12-04 00:00:00.0]
           ]
如何将上述列表排序为单个列表/映射,或按日期升序保持相同的结构(列表列表)(上述列表中不能有2个相同的日期) 我还想删除日期的时间部分。
感谢对列表进行排序,假设这些是实际日期,而不是显示的无效立即数:

sorted = udbmslList.sort { it[1] }
使用
SimpleDateFormat
或Groovy的
Date
扩展不删除时间

要创建具有相同结构但仅包含日期字符串元素的数组(使用一些伪数据),请执行以下操作:


要对列表进行排序,请使用
udbmslList.sort{it[1]}


要显示没有时间的日期,您可以使用类似于
udbmslList.each{println it[1].format('yyyy-MM-dd')}

的方法假设日期是字符串,因为它们似乎是yyyy-MM-dd格式,可以按字典顺序排序

def udbmslList=[
    [133, "2011-11-30 00:00:00.0"], 
    [141, "2011-11-29 00:00:00.0"], 
    [132, "2011-11-28 00:00:00.0"], 
    [11,  "2011-12-03 00:00:00.0"], 
    [119, "2011-12-02 00:00:00.0"], 
    [182, "2011-12-01 00:00:00.0"], 
    [12,  "2011-12-04 00:00:00.0"]
]

// Get rid of the timestamp part of the date and convert into a map.
def result = udbmslList.collectEntries { 
    [(it[0]): it[1].split()[0]] 
}

// Sort by date lexicographically.
result.sort { it.value }

assert result == [
    132: "2011-11-28", 
    141: "2011-11-29", 
    133: "2011-11-30", 
    182: "2011-12-01", 
    119: "2011-12-02", 
    11: "2011-12-03", 
    12: "2011-12-04"
]
编辑:如果日期是
日期
对象,则可以先按日期对列表排序,然后将其转换为具有适当格式的地图:

def result = udbmslList.sort { it[1] }
                       .collectEntries { [(it[0]): it[1].format('yyyy-MM-dd')] }

实际的数据类型是什么?这些是日期吗?如果你能帮我处理这个列表,那就太好了…请参考我的下一个问题。。
def result = udbmslList.sort { it[1] }
                       .collectEntries { [(it[0]): it[1].format('yyyy-MM-dd')] }