概述
groovy的集合类型
声明
groovy的集合类型本质上和JAVA差不多,groovy在JAVA的API基础上拓展了很多语法糖。
这过程声明一个集合可以使用:
def list = [1,2,3,4]
这样声明的集合类型是ArrayList,ArrayList的底层是数组,如果我们需要用LinkedList的话,我们可以
def a = [1,2,3,4,5] as LinkedList
assert a instanceof LinkedList
语法
- 我们可以通过指定下角标或者是通过Range来获取集合中的元素
def list = [2,3,4,5,6]
assert list[1..2] == [3,4]
assert list[1,2,4] == [3,4,6]
-
如果我们想从后往前计数的话,可以使用负数, -1就代表着倒数第一个
list[0…-1] 就是整个list集合 -
如果想删除集合指定范围内的元素,可以
list[3..4] = []
assert list = [2,3,4]
- 如果想向指定位置加入元素或者集合,可以
list1 += "a"
list1 += ["b","c"]
- 同理删除指定的元素可以
list1 -= "b"
- 追加指定的元素也可以使用操作符
list1 << "d" << "f"
这样元素“d”和元素“f”会被追加到集合的末尾
- 想复制集合里面的元素可以
list *= 2
这样集合里面的元素会被复制一遍
- 在switch语句中的使用
集合实现了isCase方法,所以我们可以这么玩
list2 = ["a", "b", "c"]
assert "a" in list2
switch ("a") {
case list2:
assert true
break
default:
assert false
break
}
assert list2.grep(["a","d"]) == ["a"]
for (s in list2) {
println s
}
补充方法
assert [1,[2,3]].flatten() == [1,2,3] //把集合中的集合打散成单个元素放入集合
assert [1,2,3].intersect([3]) == [3] //取交集
assert [1,2,3].disjoint([4,5]) //判断是不是没有交集
// 使用集合模拟Stack
list3 = [1,2,3]
poped = list3.pop()
assert poped == 1
assert list3 == [2,3]
// 反转
assert [1,2].reverse() == [2,1]
// 排序
assert [2,5,3,12].sort() == [2,3,5,12]
// 集合使用闭包查找符合条件的元素
def odd = [1,2,3].findAll {
it % 2 == 0
}
println odd
def x = [1,1,1,2,3]
// 统计元素的个数
println x.count(2)
// 查找元素的最大值
println x.max()
// 查找元素的最小值
println x.min()
// 集合元素去重
x = x.unique()
最后
以上就是帅气发箍为你收集整理的groovy的集合类型的全部内容,希望文章能够帮你解决groovy的集合类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复