概述
1. 列表定义
在java中我们定义List的方式如下:
def list = new ArrayList() // java 定义方式
在groovy直接使用[]定义List:
def list = [1, 2, 3, 4, 5]
println list.class
println list.size()
输出结果:
class java.util.ArrayList
5
可以看到这样定义的List,groovy初始化的是ArrayList。
groovy中定义数组:
def list = [1, 2, 3, 4, 5] as int[]
int [] array = [1, 2, 3, 4, 5]
println list.class
println list.size()
println array.class
println array.size()
输出结果:
class [I
5
class [I
5
2. 列表操作
2.1 增加
列表增加元素:
def list = [1, 2, 3, 4, 5]
list.add(6)
list.leftShift(7)
list << 8
println list.toListString()
def plusList = list + 9
println plusList.toListString()
输出结果:
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2.2 删除
list.remove(7)
list.remove((Object) 7)
list.removeAt(7)
list.removeElement(6)
list.removeAll { return it % 2 == 0 }
println list - [6, 7]
println list.toListString()
输出结果:
class java.util.ArrayList
[1, 3, 5, 9]
[1, 3, 5, 9]
2.3 查找:
可以通过find方法查找符合第一个条件的元素,下面实现查找列表中第一个偶数:
def findList = [6, -3, 9, 2, -7, 1, 5]
int result = findList.find {
return it % 2 == 0
}
println result
输出结果:
6
通过findAll方式查找所有满足条件的元素:
def findList = [6, -3, 9, 2, -7, 1, 5]
def result = findList.findAll {
return it % 2 != 0
}
println result.toListString()
输出结果:
[-3, 9, -7, 1, 5]
2.4 判断是否有一个满足条件
通过any()方法判断列表中是否有一个满足条件的原色。
def findList = [6, -3, 9, 2, -7, 1, 5]
def result = findList.any {
return it % 2 != 0
}
println result
输出结果:
true
2.5 判断是否所有元素都满足条件
通过every()判断列表中所有的元素是否满足条件:
def findList = [6, -3, 9, 2, -7, 1, 5]
def result = findList.every {
return it % 2 == 0
}
println result
输出结果:
false
2.6 查找最大值和最小值
通过min()和max()查找列表中最小值和最大值:
def findList = [6, -3, 9, 2, -7, 1, 5]
println findList.min()
println findList.max()
输出结果:
-7
9
min()和max()方法也能够传入闭包,查找绝对值最小和最大的例子:
def findList = [6, -3, 9, 2, -7, 1, 5]
println findList.min{return Math.abs(it)}
println findList.max{return Math.abs(it)}
输出结果:
1
9
2.7 统计
可以通过count对列表中的元素进行统计
def findList = [6, -3, 9, 2, -7, 1, 5]
int num = findList.count {return it % 2 == 0}
println num
输出结果:
2
2.8 排序
使用Coloections.sort()会使用默认的规则(从小到大)对列表进行排序。
def sortList = [6, -3, 9, 2, -7, 1, 5]
Collections.sort(sortList)
println sortList
输出结果:
[-7, -3, 1, 2, 5, 6, 9]
Coloections.sort()还有一个重载的函数,我们可以自定义排序规则,下面实现按照绝对值从小到大输出:
def sortList = [6, -3, 9, 2, -7, 1, 5]
Comparator mc = {a, b ->
a == b ? 0:
Math.abs(a) < Math.abs(b) ? -1 : 1
}
Collections.sort(sortList, mc)
println sortList
输出结果:
[1, 2, -3, 5, 6, -7, 9]
在groovy中有可以直接调用sort()方法进行排序。
def sortList = [6, -3, 9, 2, -7, 1, 5]
sortList.sort()
println sortList
输出结果:
[-7, -3, 1, 2, 5, 6, 9]
可以在sort方法中传入一个闭包,自定义排序规则。
sortList.sort{a, b ->
a == b ? 0:
Math.abs(a) < Math.abs(b) ? 1 : -1
}
println sortList
输出结果:
[9, -7, 6, 5, -3, 2, 1]
对字符串类型列表的排序:
def sortList = ['abc', 'z', 'Hello', 'groovy', 'java']
sortList.sort{
return it.size()
}
println sortList
输出结果:
[z, abc, java, Hello, groovy]
最后
以上就是火星上手机为你收集整理的groovy 数据结构-列表1. 列表定义2. 列表操作的全部内容,希望文章能够帮你解决groovy 数据结构-列表1. 列表定义2. 列表操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复