Groovy常用数据结构List、Map、Range

945 阅读1分钟

一、List

1. list的创建方式

groovy的list是ArrayList.

def list = new ArrayList()

def list2 = [1,2,3,4,5]

2. list的添加方式


list.add(1)

list<<2

def plusList = list+5


list.add(1,1)

3. list的删除


//把下标为2的数据删除
list.remove(2)

//把数据2删除
list.remove((object)2)
//删除数据2

list.removeElement(2)

//-是移除所有的相关元素[2,4]
println list-[2,4]

//编译所有,移除满足条件的元素(基数删除)
list.removeAll{
    return it%2!=0
}

3.查找


//找第一个偶数
list.find{
    return it%2==0
}

//找所有偶数
list.findAll{
    return it%2==0
}

//查找是否满足条件的数据  true

list.any{
    return it%2==0
}

//查找是否全部满足条件 

list.every{
    return it%2==0
}
//查找最大值
list.max{
    return it
}

//查找最小值

list.min{
    return it
}

### 4.其它功能

//统计个数 ,大于0的个数
list.count{
    return it>0
}
//默认排序 从小到大
list.sort()

//从大到小的排序

list.sort(){
    def a, def b-> return a==b?0:a<b?1:-1
}

//按个数排序

def list = {"aaa","cc","saasa"}

list.sort{
    return it.size()
}

二、Map

1.定义和读取

groovy的map默认是LinkedHashMap


def map = [red:'ff0000',green:'00ff00',blue:'0000ff'] as HashMap

println map['red']
println map.red

println map.getClass()

2. 添加

color.yellow = 'ffff00'

//添加集合对象

color.map = [key1:'a',key2:'b']

3. 删除同list

4.map的遍历

image.png


teachers.each{ def key, def value ,int index->
        println "index:${index} key:${key} value:${value}"
}

teachers.each{ def teacher,int index ->
        println "index:${index} key:${teacher.key} value:${teacher.value}"
}

5.查找同list


//分组查询 ,返回个map,derry的放在group1,其它放在group2

teachers.groupBy{ def teacher ->
    return teacher.value.name == 'derry'? 'group1':'group2'
}

6.排序同list

注意:map会返回一个新的map,list是在原有的基础上排序

三、Range

range相当于一个轻量级的list

1.定义和使用


def rang = 1..10

println range[0]
println range.contains(8)
println range.from//起点
println range.to//终点


2. 遍历


rang.each{
    println it
}

for(i in rang){
    println i
}

3. 其它


//从1到50不包含50
1..<50