Groovy Tip 25 魔幻陣列 五

2021-08-22 18:52:25 字數 2650 閱讀 4231

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 正規表示式 三 本篇主要來談談 捕獲組 和 非匹配組 以及與它們相關聯的一些概念。捕獲組 應該來說是乙個很重要的特性,特別是在進行文書處理的時候。比如,我們經常會遇到一些文字或數字跟一些符號混合在一起,而我們需要把這些文字或數字從這些符號中分離出來。這時候,我們就可以用到...