Groovy的一些Map

Groovy的一些Map,第1张

概述                                     Groovy Tip 18 Groovy的一些Map   在Groovy语言中,Map是一个大的家族,除了我们常用的HashMap以外,还有很多其他的形形色色的Map。当然,这些Map的存在是因为它们有不同于HashMap的地方。现在,我们就来看看其中的两种Map。 一. TreeMap TreeMap 是一种能够给 Map                                      Groovy Tip 18 Groovy的一些Map   在Groovy语言中,Map是一个大的家族,除了我们常用的HashMap以外,还有很多其他的形形色色的Map。当然,这些Map的存在是因为它们有不同于HashMap的地方。现在,我们就来看看其中的两种Map。 一. TreeMap TreeMap 是一种能够给 Map 对象的 key 排序的 Map ,下面举一个例子来看看就能明白。         def map = [ 3 : 'c' , 2 : 'b' , 1 : 'a' , 5 : 'e' , 4 : 'd' ]             def tm = new TreeMap(map)             println tm       运行的结果为:   [1:"a",2:"b",3:"c",4:"d",5:"e"]   可以看到,我们随便初始化的一个 Map 对象,经过 TreeMap 以后,它的 key 有有序起来。 通过运行结果,我们还可以看到,在默认的情况下, TreeMap 对象里面的 key 是按顺序排序。 当然,既然是默认的情况,我们就可以改变这种默认的情况。我们可以给 TreeMap 设定一个自己的比较器,使得 TreeMap 对象的 key 按自己的要求排序。           def map = [ 3 : 'c' , 4 : 'd' ]           def com = [compare:        {            a,b ->               a>b?- 1 : 1        }] as Comparator               def tm = new TreeMap(com)               tm.putAll(map)            println tm   首先,我们定义了一个比较器compare,然后通过初始化把它传递给TreeMap对象。上面的代码的运行结果为:   [5:"e",1:"a"]   可以看到,我们定义的比较器是倒序的,所以我们得到的结果也是倒序的。   二. ObservableMap ObservableMap是一个更有趣的Map类,它可以监视客户端对Map对象的 *** 作,我们先来看看下面的代码:             def om = [:] as ObservableMap            om.addPropertychangelistener({         evt ->           println "add value: ${evt.newValue}"      } as Propertychangelistener)            om. "test" = 'eee'       可以看到,我们给 Map 对象添加了一个监听器,这使得我们可以监听器客户端对 om 对象的 *** 作,如上面代码的运行结果为:   add value: eee   这有点类似我们的 JavaBean 。当我们在某种特殊情况下,需要把我们的 Map 对象里面的值自动由小写转化为大写的时候,这个方法就有可能用得上。 总结

以上是内存溢出为你收集整理的Groovy的一些Map全部内容,希望文章能够帮你解决Groovy的一些Map所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1268249.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存