我是靠谱客的博主 健康灯泡,这篇文章主要介绍Groovy集合类型,现在分享给大家,希望可以做个参考。



Groovy中有3种集合类型,分别是列表List、映射Map、区间Range

1、列表

List的初始化,直接在 [ ] 中直接写入初始的数据即可

[java] view plain copy print ?
  1. def list1 = [1,2,3]  
复制代码
1
def list1 = [1,2,3]
List支持的运算符和方法:

[java] view plain copy print ?
  1. def list2 = list1 * 2    // [1,2,3,1,2,3]  
  2. list2.unique()           // [1,2,3]  
  3. list1.size()             // 3  
  4. list1.reverse()          // [3,2,1]  
  5. [1,2,3,4] + [5]          // [1,2,3,4,5]  
  6. [1,2,3,4] + 5            // [1,2,3,4,5]  
  7. [1,2,3,4] << [5]         // [1,2,3,4,5]  
  8. [1,2,3,4,1] - [1]        // [2,3,4]  
  9. [1,2,3,4,1] - 1          // [2,3,4]  
  10. [1,2,3,[4,5]].flatten()  // [1,2,3,4,5]  
  11. [1,2,3,4].max()          // 4  
  12. [1,2,3,4].min()          // 1  
  13. [1,2,3,4,1].count(1)     // 2  
  14. [1,2,3,4].sum()          // 10  
  15. [1,3,2,4].sort()         // [1,2,3,4]  
  16. def list2 = [[1,1],[2,2],[3,3]]  
  17. list2*.unique()          // [[1],[2],[3]]  
  18. // *运算符,含义是依次对List每个元素调用*后面的方法  
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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默认会被当做字符串处理
[java] view plain copy print ?
  1. def map = [key1: 'value1']  
  2. // 获得value1的值  
  3. map.key1  
  4. map['key1']  
  5. // 获得这个map的key,结果为key1  
  6. map.keySet()    
复制代码
1
2
3
4
5
6
7
def map = [key1: 'value1'] // 获得value1的值 map.key1 map['key1'] // 获得这个map的key,结果为key1 map.keySet()
如果map的key是变量
[java] view plain copy print ?
  1. def key = 'key123'  
  2. def map1 = [(key): "MyBook"]  
  3. // 需要用括号将key的变量括起来  
复制代码
1
2
3
def key = 'key123' def map1 = [(key): "MyBook"] // 需要用括号将key的变量括起来
为初始化的map添加和删除key
[java] view plain copy print ?
  1. map1["newKey"] = "newValue"  
  2. // 此时map1 就变成 ["key123":"MyBook", "newKey":"newValue"]  
  3. map1.remove("newKey")  
  4. // 此时map1.newKey 结果为null  
复制代码
1
2
3
4
map1["newKey"] = "newValue" // 此时map1 就变成 ["key123":"MyBook", "newKey":"newValue"] map1.remove("newKey") // 此时map1.newKey 结果为null
3、区间
区间的定义有两种形式,第一种为闭区间“起始..结束”;
另一种为左闭右开区间”起始..<结束“
[java] view plain copy print ?
  1. def range1 = 1..5    // range1 长度是5,包含数字5  
  2. def range2 = 1..<5   // range2 长度是4,不包含数字5  
复制代码
1
2
3
4
def range1 = 1..5 // range1 长度是5,包含数字5 def range2 = 1..<5 // range2 长度是4,不包含数字5
前置的*符号,可以把区间展开,用于构造List
[java] view plain copy print ?
  1. [* range1]   // 结果为 [1,2,3,4,5]  
复制代码
1
2
[* range1] // 结果为 [1,2,3,4,5]
区间运用最常见的用法是用于循环和switch语句中
[java] view plain copy print ?
  1. // 用于循环  
  2. def log = ''  
  3. for(i in 1..5){  
  4.   log += i  
  5. }  
  6. // 输出log的结果为'12345'  
  7.   
  8. // 用于switch循环  
  9. def score = 35  
  10. switch(score){  
  11.   case 0..<60  : println 'not pass'  
  12.                  break  
  13.   case 60..100 : println 'pass'  
  14. }  





转载于:http://blog.csdn.net/ld_____/article/details/48026971

最后

以上就是健康灯泡最近收集整理的关于Groovy集合类型的全部内容,更多相关Groovy集合类型内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(95)

评论列表共有 0 条评论

立即
投稿
返回
顶部