Groovy~Groovy的List(列表)操作

一、列表方法

  • add():将新值附加到此列表的末尾
  • contains():如果此列表包含指定的值,则返回true
  • get():返回此列表中指定位置的元素
  • isEmpty():如果此列表不包含元素,则返回true
  • minus():创建一个由原始元素组成的新列表,而不是集合中指定的元素
  • plus():创建由原始元素和集合中指定的元素组成的新列表
  • pop():从此列表中删除最后一个项目
  • remove():删除此列表中指定位置的元素
  • reverse():创建与原始列表的元素相反的新列表
  • size():获取此列表中的元素数

二、基础造作

  • 定义List

    • def List = [a, b, c]
  • 数组类型

    • List.getClass()
  • 数组长度

    • List.size()
  • 复制数组

    • def 新List = new ArrayList<List内元素类型>(原List)

    • def 新List= 原List.clone()

  • 判断是否为空

    • List.empty
class FirstTest{
   
    static void main(String[] args) {
   
        // 定义数组
        def listTest = ["小红", "小蓝", "小明"]
        println listTest.empty	// false
        // 数组类型
        println listTest.getClass()		// class java.util.ArrayList
        // 数组长度
        println listTest.size()     // 3
        // 复制数组
        def listTest1 = new ArrayList<String>(listTest)
        println listTest            // [小红, 小蓝, 小明]
        def listTest2 = listTest1.clone()
        println listTest2           // [小红, 小蓝, 小明]
    }
}

三、List查看元素

  • 查看整个列表

    • List
  • 查看单个元素

    • List[i]:获取List中索引为i的元素,可以使用负数索引

    • List.getAt(i):获取List中索引为i的元素,可以使用负数索引

    • List.get(i):获取List中索引为i的元素,不能使用负数索引

class FirstTest{
   
    static void main(String[] args) {
   
        def listTest = ["小红", "小蓝", "小明"]
        // 索引是从0开始的
        println listTest[1]         // 小蓝
        println listTest[-1]        // 小明
        println listTest.getAt(1)   // 小蓝
        println listTest.getAt(-1)  // 小明
        println listTest.get(1)     // 小蓝
//        println listTest.get(-1)  // !!报错
    }
}

四、List修改元素

  • List[i] = x:将List中索引为i的元素更改为x
  • List.putAt(i,x):将List中索引为i的元素更改为x
  • List.set(i, x):将List中索引为i的元素更改为x并返回原值
class FirstTest{
   
    static void main(String[] args) {
   
        def listTest = ["小蓝", "小红", "小明"]
        println listTest                // [小蓝, 小红, 小明]
        listTest[1] = "小飞"
        println listTest                // [小蓝, 小飞, 小明]
        listTest.putAt(0, "小花")
        println listTest                // [小花, 小飞, 小明]
        println listTest.set(2,"小赵")   // 小明
        println listTest                // [小花, 小飞, 小赵]
    }
}

五、List迭代

  • List.each{执行语句}
  • List.each{变量名称 -> 执行语句}
  • List.eachWithIndex{变量名称, 索引 -> 执行语句}
class FirstTest{
   
    static void main(String[] args) {
   
        def listTest = ['小明', '小蓝', '小红']
        // each只有元素
        listTest.each{
   
            // it是对应当前元素的隐式参数
            println it
        }
        listTest.each{
   student ->
            println student
        }
        // eachWithIndex有元素和索引
        listTest.eachWithIndex{
    student, i ->
            println i + ": " + student }
    }
}
  • List.collect{执行语句}
class FirstTest{
   
    static void main(String[] args) {
   
        def num = [1,2,3]
        println num.collect()                       // [1, 2, 3]
        println num.collect{
    it * 2}      // [2, 4, 6]
        println num*.multiply(2)                // [2, 4, 6]
        println num.collect{
    it.multiply(2) }   // [2, 4, 6]
        // 可以给collect传入list参数,收集元素的列表
        def list = [0]
        println num.collect(list){
   it * 2}       // [0, 2, 4, 6]
    }
}

六、List查找和过滤

  • 查找

    • List.find{条件}:找到第一个符合条件的元素
    • List.findAll{条件}:找到所有符合条件的元素
    • List.findIndexOf{条件}:找到第一个符合条件元素的索引
    class FirstTest{
         
        static void main(String[] args) {
         
            // 找出第一个符合条件的元素
            println ([1,2,3].find{
          it > 1 })
            // 找到所有符合条件的元素
            println ([1,2,3].findAll{
          it > 1 })
            // 找到符合条件的第一个元素的index
            println (['a', 'b', 'c', 'd', 'e'].findIndexOf{
         
                it in ['c', 'e', 'g']
            })
        }
    }   
    
  • 索引

    • List.indexOf{条件}:返回第一个符合条件的索引
    • List.lastIndexOf{条件}:返回最后一个符合条件的索引
    class FirstTest{
         
        static void main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值