我是靠谱客的博主 帅气发箍,这篇文章主要介绍groovy的集合类型,现在分享给大家,希望可以做个参考。

groovy的集合类型

声明

groovy的集合类型本质上和JAVA差不多,groovy在JAVA的API基础上拓展了很多语法糖。

这过程声明一个集合可以使用:

复制代码
1
2
def list = [1,2,3,4]

这样声明的集合类型是ArrayList,ArrayList的底层是数组,如果我们需要用LinkedList的话,我们可以

复制代码
1
2
3
4
def a = [1,2,3,4,5] as LinkedList assert a instanceof LinkedList

语法

  • 我们可以通过指定下角标或者是通过Range来获取集合中的元素
复制代码
1
2
3
4
5
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集合

  • 如果想删除集合指定范围内的元素,可以

复制代码
1
2
3
list[3..4] = [] assert list = [2,3,4]
  • 如果想向指定位置加入元素或者集合,可以
复制代码
1
2
3
list1 += "a" list1 += ["b","c"]
  • 同理删除指定的元素可以
复制代码
1
2
list1 -= "b"
  • 追加指定的元素也可以使用操作符
复制代码
1
2
list1 << "d" << "f"

这样元素“d”和元素“f”会被追加到集合的末尾

  • 想复制集合里面的元素可以
复制代码
1
2
list *= 2

这样集合里面的元素会被复制一遍

  • 在switch语句中的使用
    集合实现了isCase方法,所以我们可以这么玩
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部