List 对象
声明一个List
:
复制代码
1
2
3def list = [] println(list.class)
输出:
复制代码
1
2class java.util.ArrayList
可以看到groovy中使用[]
直接创建一个ArrayList
对象,如果我们需要链表的呢?
复制代码
1
2
3def list = [] as LinkedList println(list.class)
输出
复制代码
1
2class 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
69def 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
4def 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
19def 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
会让执行器以为你在取一个key
为class
.
如下:
复制代码
1
2
3
4def 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
19def map = [a: "xiaoming"] //添加到源集合 //map << [b: 's'] //返回一个新的集合 //map + [c: 's'] //遍历 //for (i in map) { // //} //遍历 map.forEach{key,value-> }
最后
以上就是快乐小蚂蚁最近收集整理的关于Groovy集合的全部内容,更多相关Groovy集合内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复