栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

groovy中排序的地图

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

groovy中排序的地图

如果您只是这样声明地图:

def m = [:]

然后,您可以看到Groovy默认情况下

linkedHashMap

assert m.getClass().name == 'java.util.linkedHashMap'

如果您查看linkedHashMap的文档,它将显示:

Map接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双向链接列表。此链表定义了迭代顺序,通常是将键插入映射的顺序(插入顺序)。

所以,

linkedHashMap
有一个顺序,你可以通过调用影响Groovy中的顺序
sort

def m = [ b:1, a:2 ]// Sort by descending valuem = m.sort { -it.value }println m // prints [a:2, b:1]

如果您想对键进行自然排序,则可以使用Java的排序映射之一,例如

TreeMap

要说您想在Groovy中使用它,可以执行以下操作:

// def tm = [ tim_yates:1, F21:2 ] as TreeMap // works as wellTreeMap tm = [ tim_yates:1, F21:2 ]

然后打印它,您可以看到它是按以下键排序的:

println map // prints [F21:b, tim_yates:a]

TreeMap
添加键时,A 将保持顺序。
linkedHashMap
添加新值时,A 不会自动保持排序。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号