groovy tip 25魔幻陣列 五
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
本系列前面章節曾談到過陣列來模擬數學集合的一些操作,比如「交集」、「並集」、「集合求差」和「集合反轉」等,都是集合的一些基本運算。但是,除此之外,還有一些集合的基本運算,如「屬於」、「子集」等以及與它們的相關運算,卻沒有提及,因此在本節來一一談到。
首先說「屬於」運算,我們說如果乙個物件是陣列中的乙個元素,就說這個物件「屬於」那個陣列,在groovy語言中的操作符為「in」。示例**如下:
deflist1 = [1,
3,4,
5,6]
println(
1inlist1)
執行結果為:
true
當然,如果如下的**:
println(
9inlist1)
執行結果為:
false
當然,我們說乙個物件「屬於」乙個陣列,也可以說那個陣列「包含」那個物件。因此,下面的**是和上面的**等價的:
printlnlist1.contains(1)
printlnlist1.contains(9)
知道了乙個物件「屬於」乙個陣列只是第一步,接下來我們可能想進一步知道陣列裡有多少個這樣的物件:
deflist3 = [
'a',
'b',
'c']
printlnlist3.count(
'a')
執行結果為: 1
同樣的:
println([
'a',
'b',
'a',
'c'].count(
'a'))
println([
'a',
'b',
'a',
'c'].count(
'd'))
執行結果為: 2
0 當然了,我們對元素在陣列中的位置也是相當的關心,「indexof」方法會告訴我們物件在陣列中的第乙個的位置:
println([
'a',
'b',
'a',
'c'].indexof(
'a'))
執行結果為: 0
當然,我們也可以知道物件在陣列中的最後乙個的位置,「lastindexof」方法會告訴我們。如下:
println([
'a',
'b',
'a',
'c'].lastindexof(
'a'))
執行結果為: 2
如果乙個物件不包含在乙個陣列中,那麼「indexof」方法的返回值則是「-1」,示例**如下:
println([
'a',
'b',
'a',
'c'].indexof(
'd'))
執行結果為: -1
說完了「屬於」運算及其相關的方法,接著就是說說「子集」運算了,判斷乙個陣列是否是另乙個陣列的「子集」不能使用「in」操作符了,而要使用「containsall」方法,示例**如下:
deflist4 = [
'a',
'b',
'c',
'd']
deflist5 = [
'a',
'd']
printlnlist4.containsall(list5)
printlnlist4.containsall([
'a',
'e'])
執行結果為:
true
false
而下面的**:
deflist6 = [
'a',
'b',
'a']
printlnlist6.containsall([
'a',
'b'])
執行結果為:
true
前面的篇幅談到過兩個陣列的「交集」,現在的問題是怎麼判斷是否有「交集」呢?在groovy語言中也有特別的方法來判斷,請看下面的例子:
printlnlist4.disjoint([
'e',
'f',
'a'])
printlnlist4.disjoint([
'e',
'f'])
執行結果為:
false
true
list4和集合「
['e'
,'f'
,'a'
]」有乙個相同的元素「a」,當然是有「交集」,則「
disjoint
」方法返回
false
;而list4和集合「
['e'
,'f'
]」則完全沒有相同的元素,因而返回true。
Groovy Tip 26 魔幻陣列 六
groovy tip 26魔幻陣列 六 list 還有一些統計學上面的運算,也是我們可能要經常用到的。比如,將集合裡的元素求和 求集合裡的最大 最小元素等等。比如我們有如下的乙個集合物件 deflist 1,3,4,5,6 有些時候,我們希望把 list 裡所有元素相加起來,這時候,groovy 語...
Groovy Tip 26 魔幻陣列 六
groovy tip 26魔幻陣列 六 list還有一些統計學上面的運算,也是我們可能要經常用到的。比如,將集合裡的元素求和 求集合裡的最大 最小元素等等。比如我們有如下的乙個集合物件 deflist 1,3,4,5,6 有些時候,我們希望把list裡所有元素相加起來,這時候,groovy語言為我們...
Groovy Tip 29 正規表示式 三
groovy tip 29 正規表示式 三 本篇主要來談談 捕獲組 和 非匹配組 以及與它們相關聯的一些概念。捕獲組 應該來說是乙個很重要的特性,特別是在進行文書處理的時候。比如,我們經常會遇到一些文字或數字跟一些符號混合在一起,而我們需要把這些文字或數字從這些符號中分離出來。這時候,我們就可以用到...