首页 > 其他分享 >Groovy基础语法-list

Groovy基础语法-list

时间:2024-06-02 20:43:40浏览次数:18  
标签:Groovy groovy 元素 list l1 语法 000 ls1 true

定义list

groovy:000> ls1 = [1,2,3,4,5,6,7]
===> [1, 2, 3, 4, 5, 6, 7]

list基本操作

1、将元素添加到list尾部

groovy:000> ls1.add(8)
===> true

2、移除List中的元素
根据下标删除元素

groovy:000> ls1.remove(1)
===> 2  # 将list中2给移除了,下标为1

3、修改list中的元素

# 方式1
groovy:000> ls1.set(0,10) #将索引为0的元素修改为10
===> 1
groovy:000> ls1
===> [10, 3, 4, 5, 6, 7, 8]

# 方式二
# 将List中索引为0的元素更改为10
groovy:000> ls1.putAt(0,10) 

4、获取list中的元素

groovy:000> ls1.get(5) # 获取索引为5的元素
===> 7
# 获取List中索引为i的元素,可以使用负数索引
groovy:000> l1[0]
===> a
# 获取List中索引为i的元素,可以使用负数索引
groovy:000> l1.getAt(0)
===> a
groovy:000> l1.getAt(-1)
===> 8
# 获取List中索引为i的元素,不能使用负数索引
groovy:000> l1.get(1)
===> b

5、获取子列表

groovy:000> ls1 = [1,2,3,4,5,6,7]
===> [1, 2, 3, 4, 5, 6, 7] # 重新定义一个ls1
groovy:000> ls1.subList(2,5) # 获取第 3 到 5 间的元素
===> [3, 4, 5]

6、是否包含元素3

groovy:000> ls1.contains(3)
===> true

7、获取首个元素和最后一个元素

groovy:000> ls1.first()
===> 1
groovy:000> ls1.last()
===> 7

8、获取数组长度

groovy:000> ls1.size()
===> 8

9、判断list是否为空

groovy:000> ls1.empty
===> false

弹出和压入元素(push pop)

1、pop 从此列表中删除最后一个项目

groovy:000> ls1 = [1,2,3,4,5,6,7]
===> [1, 2, 3, 4, 5, 6, 7]
groovy:000> ls1.pop()
===> 7
groovy:000> ls1.pop()
===> 6
groovy:000> ls1
===> [1, 2, 3, 4, 5]

2、push 创建由原始元素和集合中指定的元素组成的新列表

groovy:000> ls1 = [1,2,3,4,5,6,7]
===> [1, 2, 3, 4, 5, 6, 7]
groovy:000> ls1.push(8)
===> true
groovy:000> ls1
===> [1, 2, 3, 4, 5, 6, 7, 8]

获取数组类型

groovy:000> ls1.getClass()
===> class java.util.ArrayList

数组复制

1、l1赋给l2 无论修改l1或者l2 两者都会变化,底层同一份数据

groovy:000> l1 = ["a","b","c","d","e","f",1,2,3,4,5,6]
===> [a, b, c, d, e, f, 1, 2, 3, 4, 5, 6]
groovy:000> l2 = l1
===> [a, b, c, d, e, f, 1, 2, 3, 4, 5, 6]

数组迭代

// 定义一个水果类的数组
fruits = ["apple","Cherry tomato","Cherry","Custard","Dates","Grape"]

// 迭代,取值,不要索引
fruits.each{val -> println val}

// 迭代,取值,带索引
fruits.eachWithIndex{val,index -> println index + "::" + val}

# 示例如下
//  定义一个水果类的数组
groovy:000> fruits = ["apple","Cherry tomato","Cherry","Custard","Dates","Grape"]

// 迭代,取值,不要索引
groovy:000> fruits.each{val -> println val}
apple
Cherry tomato
Cherry
Custard
Dates
Grape

// 迭代,取值,带索引
groovy:000> fruits.eachWithIndex{val,index -> println index + "::" + val}
0::apple
1::Cherry tomato
2::Cherry
3::Custard
4::Dates
5::Grape

List的查找和过滤

// 定义一个List
groovy:000> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
===> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// 查找大于5的元素
groovy:000> numbers.findAll { it > 5 }
===> [6, 7, 8, 9, 10]

//  查找小于5的元素
groovy:000> numbers.findAll { it < 5 }
===> [1, 2, 3, 4]

// 查找等于5的元素
groovy:000> numbers.findAll { it == 5 }
===> [5]

// 查找第一个大于5的元素,这是是find 不是findAll
numbers.find { it > 5 }
===> 6

// 查找是否存在大于10的元素
numbers.any { it > 10 }
===> false

// 查找所有的偶数
groovy:000> numbers.findAll { it % 2 == 0 }
===> [2, 4, 6, 8, 10]

索引

groovy:000> l3 = ['a','b','c','d','c']
===> [a, b, c, d, c]

// 返回index
groovy:000> l3.indexOf("c")
===> 2

// index返回-1意味着没有找到结果
groovy:000> l3.indexOf("z")
===> -1

// 返回最后一个索引
groovy:000> l3.lastIndexOf("c")
===> 4

判断

List.every{条件}:如果List中每一个元素都符合条件就返回true,否则为false

List.any{条件}:如果List中有一个元素符合条件就返回true,否则为false

groovy:000> l1 = [1,2,3,4,5,6]
===> [1, 2, 3, 4, 5, 6]

// 如果每一个元素都符合条件则返回true
groovy:000> l1.every{it < 7}
===> true

// 如果每一个元素都符合条件则返回true
groovy:000> l1.every{it < 6}
===> false

// any 如果有一个元素符合条件就返回true
groovy:000> l1.any{it > 5}
===> true

// any 如果有一个元素符合条件就返回true
groovy:000> l1.any{it > 3}
===> true

标签:Groovy,groovy,元素,list,l1,语法,000,ls1,true
From: https://www.cnblogs.com/ykubernetes/p/18227479

相关文章

  • LeetCode //C - 147. Insertion Sort List
    147.InsertionSortListGiventheheadofasinglylinkedlist,sortthelistusinginsertionsort,andreturnthesortedlist’shead.Thestepsoftheinsertionsortalgorithm:Insertionsortiterates,consumingoneinputelementeachrepetitionand......
  • 集合类源码浅析のArrayList
    源码分析路线图:初级部分:ArrayList->LinkedList->Vector->HashMap(红黑树数据结构,如何翻转,变色,手写红黑树)->ConcurrentHashMap中级部分:Spring->SpringMVC->SpringBoot->Mybatis核心类源码高级部分:中间件源码(有生之年系列)第一篇,从最简单的ArrayList入手分析1、成员变量......
  • Git基本语法
    官网及下载地址        Git官网:GitGit基本语法1.Git初始化配置git--version #Git版本gitupdate-git-for-windows #升级版本gitconfig--system[--unset]user.name用户名#设置/删除用户签名(全局)gitconfig--system[--unset]......
  • 如何轻松实现两个List的高效交集操作
    哈喽,大家好,我是木头左!一、引言在编程的世界里,总是在寻找更高效、更简洁的方法来解决问题。今天,将探讨如何在Java中轻松实现两个List的交集操作,让你的代码更加简洁、高效。二、JavaList简介让了解一下Java中的List接口。List是一个有序的集合,可以包含重复的元素。它提供了一......
  • js 一些常见新语法实践测试
    //生成多少个yield就能被forof遍历多少次function*mytest(){for(leti=0;i<5;i++){yieldMath.random(10)*1000}}//forof会迭代生成器里面所有的yield,有多少个yield就会迭代多少次for(letiofmytest()){console.log(i,"i"......
  • Groovy基础语法-字符串篇
    索引取值str1="devops-test-stings"1、获取字符串倒数第一个的值groovy:000>printlnstr1[-1]s2、获取索引为2的值groovy:000>printlnstr1[2]v3、获取多个下标的值,用“,”号隔开groovy:000>printlnstr1[0,2,4]dvp4、获取字符串第一个到第四个的值,可用于截......
  • 01:Java概述及基本语法
    1、Java是什么?是SUN(StanfordUniversityNetwork,斯坦福大学网络公司)1995年推出的一门高级编程语言2、Java技术体系平台JavaSE(JavaStandardEdition)标准版JavaEE(JavaEnterpriseEdition)企业版JavaME(JavaMicroEdition)小型版3、Java主要特性面向对象......
  • ListView超强总结
        ListView由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有少量的数据需要展示的时候,就可以借助ListView来实现。ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。相信你......
  • CentOS Linux 8x 错误:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare interna
    问题描述今天安装CentOS8.5安装完之后,准备更新源仓库环境的时候突然出现错误:为仓库'appstream'下载元数据失败:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist,后面我找了好久没发现有解决这个问题的方法,后面无意看到了https://www.cnblogs.com/cainiaoaixuexi......
  • Python教程-快速入门基础必看课程05-List索引
    摘要该视频主要讲述了Python中列表的基本操作,包括创建、添加元素、查找特定值、计算元素数量以及获取最后一个元素等。视频以清晰的例子和解释来展示这些操作,非常有助于初学者理解。此外,视频还讲述了Python中索引和切片的使用方法,这些是Python中非常重要的基础概念。掌握这些......