Gorrvy常用方法.docx

上传人:b****3 文档编号:2794635 上传时间:2022-11-15 格式:DOCX 页数:10 大小:16.94KB
下载 相关 举报
Gorrvy常用方法.docx_第1页
第1页 / 共10页
Gorrvy常用方法.docx_第2页
第2页 / 共10页
Gorrvy常用方法.docx_第3页
第3页 / 共10页
Gorrvy常用方法.docx_第4页
第4页 / 共10页
Gorrvy常用方法.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Gorrvy常用方法.docx

《Gorrvy常用方法.docx》由会员分享,可在线阅读,更多相关《Gorrvy常用方法.docx(10页珍藏版)》请在冰豆网上搜索。

Gorrvy常用方法.docx

Gorrvy常用方法

Groovy提供了许多常用方法~如each,eachWithIndex,any,every,grep,join,sort,find,findAll,collect,groupBy,inject,reverse,tokenize,unique,max,min,count,sum等来提升开发者的开发效率

  each

  遍历list

  deflist=['a','b','c']

  list.each{elem->

  printlnelem

  }

  运行结果:

  a

  b

  c

  遍历map

  defmap=[name:

"Joseph",address:

"Shanghai"]

  map.each{key,value->

  println"$key:

$value"

  }

  运行结果:

  name:

Joseph

address:

Shanghai

each里面不支持break语句

  eachWithIndex

  带index的each

  deflist=['a','b','c']

  list.eachWithIndex{elem,i->

  println"$i:

$elem"

  }

  运行结果:

  0:

a

  1:

b

  2:

c

  any

  只要存在一个满足条件(此例中的条件为elem.length()<3)的element就返回true,否则返回false

  deflist=['a','ab','abc']

  list.any{elem->

  elem.length()<3

  }

  运行结果:

  true

  every

  所有的element都满足条件才返回true,否则返回false

  deflist=['a','ab','abc']

  list.every{elem->

  elem.length()<3

  }

  运行结果:

  false

  grep

  符合条件的element会被提取出来,形成一个list

  条件以closure的形式传入

  deflist=['a','ab','abc']

  list.grep{elem->

  elem.length()<3

  }

  运行结果:

  ["a","ab"]

  条件以regex的形式传入,符合regex的element被提取出来形成一个list

  deflist=['a','ab','abc']

  list.grep(~/../)

  运行结果:

  ["ab"]

  条件以collection的形式传入,在collection中的element被提取出来形成一个list,可以看作求两个collection的交集

  deflist=['a','ab','abc']

  list.grep(['a','cde','ab'])

  运行结果:

  ["a","ab"]

  join

  用指定的字符连接collection中的element

  deflist=[2007,8,26]

  list.join('-')

  运行结果:

  2007-8-26

  sort

  根据指定条件进行排序

deflist=[2007,8,26]

默认升序

list.sort()

倒序

  list.sort{e1,e2->

  returne2<=>e1

}

以对象的id排序

list.sort{e1,e2->

  returne1.id<=>e2.id

}

随机打乱

list.sort{

Math.random()

}

  运行结果:

  [8,26,2007]

  find

  查找collection中满足条件的‘第一个’element

  deflist=[2007,8,26]

  list.find{elem->

  elem<30

  }

  运行结果:

  8

  findAll

  查找collection中满足条件的‘所有’element

  deflist=[2007,8,26]

  list.findAll{elem->

  elem<30

  }

  运行结果:

  [8,26]

  collect

  对collection的element进行处理,并将处理结果放到一个新的collection中

  deflist=['a','b','c']

  list.collect{elem->

  elem*2

  }

  运行结果:

  ["aa","bb","cc"]

  对map进行处理

  defmap=[name:

'wang',address:

'Shanghai']

  map.collect{entry->

  "${entry.key}:

${entry.value}"

  }

  运行结果:

  [name:

wang,address:

Shanghai]

  groupBy

  对collection中的element按给定条件进行分组

  deflist=['a','b','abc','ab','c','bc']

  list.groupBy{elem->

  elem.length()

  }

  运行结果:

  [1:

["a","b","c"],2:

["ab","bc"],3:

["abc"]]

  inject

  一个累积的过程,传入inject方法的'I'作为sum的初始值,在遍历collection的过程中,将处理结果("$sum$elem")保存到sum中

  deflist=["love","you"]

  list.inject('I'){sum,elem->

  "$sum$elem"

  }

  运行结果:

Iloveyou

….

deflist2=[1,4,5,7]

printlnlist2.inject(0){

count,it->

count+it

}

运行结果:

17

上面的代码等同于下面的代码:

intcount=0

list2.each{

count+=it

}

printlncount

  reverse

  将collection中各element的次序颠倒一下

  deflist=['a','b','c']

  list.reverse()

  运行结果:

  ["c","b","a"]

  颠倒字符串

  deflist='abc'

  list.reverse()

  运行结果:

cba

reverseEach

deflist23=['TomCheng','MikeWang','JackDeng']

我们需要求得如下要求的一个数组:

先是将list23的元素反转过来,然后再取数组中各个元素的名字,即“Tom”等组成一个新的数组。

deflist24=[]

list23.reverseEach{

defnames=it.split('')

list24<

}

printlnlist24

运行结果:

["Jack","Mike","Tom"]

  tokenize

  指定分隔符,取得token集

  'a1/b2/c3/d4'.tokenize('/')

  运行结果:

  ["a1","b2","c3","d4"]

  unique

  去除collection中重复的element

  deflist=['a','b','b','a','c']

  list.unique()

  运行结果:

["a","b","c"]

deflist10=list9.unique{

it.id

}

  max

  求最大值

  deflist=[1,2,3]

  list.max()

  运行结果:

  3

  按指定的比较内容(此例的比较内容为长度length),在collection中选出最大的element

  deflist=['a','ab','abc']

  list.max{elem->

  elem.length()

  }

  min与max类似,求最小值,用法与max相同,将上述代码中的max改为min即可

  count

  计数

  deflist=['a','ab','a']

  list.count('a')

  运行结果:

  2

  对字符串"aaba"中的a进行计数

  deflist="aaba"

  list.count('a')

  运行结果:

  3

  sum

  求和

  deflist=[1,2,3]

  list.sum()

  运行结果:

6

sum方法要提供的功能不止是简单的求和,而且还可以做更为复杂的求和。

如下:

先把集合里为偶数的元素除以2,再求和

list.sum{

it%2==0?

it/2:

it

}

运行结果:

5

  求字符串的‘和’,其实就是连接字符串

  deflist=['a','b','c']

  list.sum()

  运行结果:

abc

indexOf

deflist=[1,2,3]

list.indexOf

(2)

运行结果为:

1

list.indexOf(4)

运行结果为:

-1

同样,还有lastIndexOf

contains

deflist=[1,2,3]

printlnlist.contains

(2)

运行结果为:

true

containsAll

判断一个数组是否是另一个数组的“子集”

deflist4=['a','b','c','d']

deflist5=['a','d']

printlnlist4.containsAll(list5)

printlnlist4.containsAll(['a','e'])

运行结果为:

true

false

intersect

deflist11=['a','a','b','c','d']

deflist12=['a','b','a','e']

printlnlist11.intersect(list12)

运行结果为:

["a","b","a"]

disjoint

判断连个集合是否有交集

deflist4=['a','b','c','d']

printlnlist4.disjoint(['e','f','a'])

printlnlist4.disjoint(['e','f'])

运行结果为:

false

true

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1