Groovy集合型別

2021-07-04 21:21:29 字數 1974 閱讀 2832

groovy中有3種集合型別,分別是列表list、對映map、區間range

1、列表

list的初始化,直接在 [ ] 中直接寫入初始的資料即可

def list1 = [1,2,3]
list支援的運算子和方法:

def list2 = list1 * 2    // [1,2,3,1,2,3]

list2.unique() // [1,2,3]

list1.size() // 3

list1.reverse() // [3,2,1]

[1,2,3,4] + [5] // [1,2,3,4,5]

[1,2,3,4] + 5 // [1,2,3,4,5]

[1,2,3,4] << [5] // [1,2,3,4,5]

[1,2,3,4,1] - [1] // [2,3,4]

[1,2,3,4,1] - 1 // [2,3,4]

[1,2,3,[4,5]].flatten() // [1,2,3,4,5]

[1,2,3,4].max() // 4

[1,2,3,4].min() // 1

[1,2,3,4,1].count(1) // 2

[1,2,3,4].sum() // 10

[1,3,2,4].sort() // [1,2,3,4]

def list2 = [[1,1],[2,2],[3,3]]

list2*.unique() // [[1],[2],[3]]

// *運算子,含義是依次對list每個元素呼叫*後面的方法

2、對映

建立map,用key : value 的形式成對出現,初始化時的key缺省會被當做字串處理

def map = [key1: 'value1']

// 獲得value1的值

map.key1

map['key1']

// 獲得這個map的key,結果為key1

map.keyset()

如果map的key是變數

def key = 'key123'

def map1 = [(key): "mybook"]

// 需要用括號將key的變數括起來

為初始化的map新增和刪除key

map1["newkey"] = "newvalue"

// 此時map1 就變成 ["key123":"mybook", "newkey":"newvalue"]

map1.remove("newkey")

// 此時map1.newkey 結果為null

3、區間

區間的定義有兩種形式,第一種為閉區間「起始..結束」;

另一種為左閉右開區間」起始..《結束「

def range1 = 1..5    // range1 長度是5,包含數字5

def range2 = 1..<5 // range2 長度是4,不包含數字5

前置的*符號,可以把區間展開,用於構造list

[* range1]   // 結果為 [1,2,3,4,5]
區間運用最常見的用法是用於迴圈和switch語句中

// 用於迴圈

def log = ''

for(i in 1..5)

// 輸出log的結果為'12345'

// 用於switch迴圈

def score = 35

switch(score)

Groovy筆記 三 之集合

list的建立與元素獲取 class listtest 反向迭代 54321 list.reverseeach println 如果關注迭代的索引和計數 list.eachwithindex 閉包中的元素求和 15 def sum 0 list.each println sum 2,4,6,8,10...

C 集合型別

陣列,arraylist list hashtable hashtable ht new hashtable ht.add first xuanxuan ht.add second minmin 通過這樣訪問ht second 使用無效的key查詢是返回null 而dictionnary丟擲異常 h...

PL SQL 集合型別

建立乙個型別 create or replace type project is object project no number 2 title varchar2 35 cost number 7,2 建立乙個集合 create or replace type projectlist is tab...