我是靠谱客的博主 快乐小蚂蚁,这篇文章主要介绍Groovy集合,现在分享给大家,希望可以做个参考。

List 对象

声明一个List:

复制代码
1
2
3
def list = [] println(list.class)

输出:

复制代码
1
2
class java.util.ArrayList

可以看到groovy中使用[]直接创建一个ArrayList对象,如果我们需要链表的呢?

复制代码
1
2
3
def list = [] as LinkedList println(list.class)

输出

复制代码
1
2
class java.util.LinkedList
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
def list = [1, 2, 3, 4, 2] //println(list - 2) //[1, 3, 4] 删除集合中所有的2,然后返回一个新的集合 。注意不影响源集合 //println(list)//[1, 2, 3, 4, 2] //println(list + 2)//1, 2, 3, 4, 2, 2] 添加一个2到新的集合中,然后返回[。注意不影响源集合 //println(list)//[1, 2, 3, 4, 2] //println(list << 2)//[1, 2, 3, 4, 2, 2] 添加一个2到集合中,返回原集合。注意影响源集合 //println(list )//[1, 2, 3, 4, 2, 2] //list << [1,2]//[1, 2, 3, 4, 2, [1, 2]] 特别注意<<放入集合对象的时候会把它作为一个item,而不会铺平 //println(list) //集合中有一个元素满足就返回true //def result = list.any { // it == 2 //} //println(result) //集合全部元素满足返回true //def result = list.every() { // it == 2 //} //println(result) //遍历所有集合 //list.forEach { value -> // printf "$value" //} //遍历源集合,然后收集每次closure返回结果作为一个集合,比如这里newList就是[2, 3, 4, 5, 3] //def newList = list.collect { value -> // value + 1 //} //println(newList) //铺平内部元素的集合。用于将集合中嵌套的集合转化为单个元素.注意这个不会影响源集合 //def flatList=[1,2,[1,3]] // //println(flatList.flatten())//[1, 2, 1, 3] 原来末尾的[1,3]也是一个集合作为flatList的item //println(flatList)//[1, 2, [1, 3]] //遍历 //for (i in list) { // printf "$i" //} //逆序遍历,reverse会返回一个逆序的新集合 //for (i in list.reverse()) { // printf "$i" //} //def strList = ["asd", "aaaaaa"] //用closure返回的类型进行比较,然后返回最大的数值 //def d = strList.max { // it.length() //} // //printf "$d"

Map对象

声明方法:

复制代码
1
2
3
4
def list = [a: "xiaoming", b: "lihong", c: "wangwu"] //注意这里不能直接 list.class 后面讲解 println(list.getClass())
获取键值
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def list = [a: "xiaoming", b: "lihong", c: "wangwu"] println(list.a) println(list.b) println(list.c) println(list.get('a')) println(list.get('b')) println(list.get('c')) println(list.'a') println(list.'b') println(list.'c') println(list['a']) println(list['b']) println(list['c'])

由于存在map.键值的语法,导致map.class会让执行器以为你在取一个keyclass.
如下:

复制代码
1
2
3
4
def list = [class: "xiaoming"] println(list.class)

输出
xiaoming

map常用方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def map = [a: "xiaoming"] //添加到源集合 //map << [b: 's'] //返回一个新的集合 //map + [c: 's'] //遍历 //for (i in map) { // //} //遍历 map.forEach{key,value-> }

最后

以上就是快乐小蚂蚁最近收集整理的关于Groovy集合的全部内容,更多相关Groovy集合内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部