Groovy高效编程——‘匕首方法’的使用(更新于2007.09.14)(转载)

Groovy高效编程——‘匕首方法’的使用(更新于2007.09.14)(转载),第1张

概述  关键字: grails 转载自http://www.blogjava.net/BlueSUN/archive/2007/08/26/139460.html   Groovy 提供了许多‘匕首方法’(匕首,短小精悍也~如 each,eachWithIndex,any,every,grep,join,sort,find,findAll,collect,groupBy,inject,reverse,   关键字: grails

转载自http://www.blogjava.net/BlueSUN/archive/2007/08/26/139460.html

 

Groovy 提供了许多‘匕首方法’(匕首,短小精悍也~如 each,eachWithIndex,any,every,grep,join,sort,find,findAll,collect,groupBy,inject,reverse,tokenize,unique,max,min,count,sum等)来提升开发者的开发效率,但常被Java开发人员忽视。在这篇随笔中我将为您演示各方法的使用。

each
遍历List

def List  =  [ ' a b c ]
List.each { elem 
->
  println elem
}
运行结果:
a
b
c

遍历map
def map   [name: " 山风小子 Shanghai ]
map.each { key, value 

  println 
$key : $value
}
运行结果:
name : 山风小子
address : Shanghai

eachWithIndex
带index的each
]
List.eachWithIndex { elem, i  $i : $elem 0 : a
1 : b
2 : c

any
只要存在一个满足条件(此例中的条件为elem.length() < 3)的element就返回true,否则返回false
ab abc ]
List.any { elem 
 
  elem.length() 
<   3 true
every
所有的element都满足条件才返回true,否则返回false
]
List.every { elem  false
grep
符合条件的element会被提取出来,形成一个List
条件以closure的形式传入
]
List.grep { elem 
  elem.length() 
["a", "ab"]
条件以regex的形式传入,符合regex的element被提取出来形成一个List
]
List.grep( ~/ .. / ) 运行结果:
["ab"]
条件以collection的形式传入,在collection中的element被提取出来形成一个List,可以看作求两个collection的交集
]
List.grep([ cde ]) 运行结果:

join
用指定的字符连接collection中的element
2007 8 26 ]
List.join(
- 2007-8-26

sort
根据指定条件进行排序
]
List.sort { e1, e2 
  
return  e1   e2
}
运行结果:
[8, 26, 2007]
find
查找collection中满足条件的‘第一个’element
]
List.find { elem 
  elem 
30 8
findAll
查找collection中满足条件的‘所有’element
]
List.findAll { elem  collect
对collection的element进行处理,并将处理结果放到一个新的collection中
]
List.collect { elem  * 2 ["aa", "bb", "cc"]
对map进行处理
]
map.collect { entry  ${entry.key} : ${entry.value} [name : 山风小子, address : Shanghai]

groupBy
对collection中的element按给定条件进行分组
bc ]
List.groupBy { elem 

    elem.length()
}
运行结果:
[1:["a", "b", "c"], 2:["ab", "bc"], 3:["abc"]]

inject
一个累积的过程,传入inject方法的'I'作为sum的初始值,在遍历collection的过程中,将处理结果( " $sum $elem  ")保存到sum中
love you ]
List.inject(
I ) { sum, elem   
  
$sum $elem  I love  you 
reverse
将collection中各element的次序颠倒一下
]
List.reverse() 运行结果:
["c", "a"]
颠倒字符串

List.reverse() 运行结果:
cba

tokenize
指定分隔符,取得token集
a1/b2/c3/d4 .tokenize( ["a1", "b2", "c3", "d4"]
unique
去除collection中重复的element
]
List.unique() 运行结果:


max
求最大值
1 ]
List.max()
运行结果:
3
按指定的比较内容(此例的比较内容为长度length),在collection中选出最大的element
]
List.max { elem 
  elem.length()
}

min与max类似,求最小值,再次就不演示用法了,用法与max相同,将上述代码中的max改为min即可

count
计数
]
List.count( 2
对字符串"aaba"中的a进行计数
aaba
List.count(
3
sum
求和
]
List.sum() 运行结果:
6
求字符串的‘和’,其实就是连接字符串
abc 最后,我想提醒各位一点:有时您可以将string看作List,对string使用适用于List的‘匕首方法’ 总结

以上是内存溢出为你收集整理的Groovy高效编程——‘匕首方法’的使用(更新于2007.09.14)(转载)全部内容,希望文章能够帮你解决Groovy高效编程——‘匕首方法’的使用(更新于2007.09.14)(转载)所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/langs/1268064.html

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

发表评论

登录后才能评论

评论列表(0条)

保存