Groovy集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )相关的知识,希望对你有一定的参考价值。
文章目录
一、使用 [] 创建集合
1、使用 [] 创建 ArrayList 集合
将 [] 赋值给变量 , 默认就是创建 ArrayList 集合 ; 在下面的代码中 , 打印 [] 变量类型 ;
其结果是 class java.util.ArrayList ;
// 使用 [] 为变量赋值
// 该变量默认为 ArrayList 类型
def list = []
// 打印 [] 变量类型
println list.class
2、使用 [] 创建 LinkedList 集合
如果要创建 LinkedList 集合 , 可以在变量的赋值后面添加 as LinkedList , 就可以将该变量声明为 LinkedList 集合 ;
其执行结果为 class java.util.LinkedList ;
// 创建 LinkedList
def list1 = [] as LinkedList
// 打印 list1 变量类型
println list1.class
二、访问集合中的元素
1、集合赋初值
在 [] 中 , 可以设置多个相同类型的元素 , 各个元素之间使用逗号隔开 ;
下面的代码相当于创建了 ArrayList<String> 集合 , 并为该集合赋值 3 3 3 个元素 , 分别是 “1”, “2”, “3” ;
def list2 = ["1", "2", "3"]
2、使用下标访问集合元素
( 1 ) 正常下标
使用 [0] , [1] 等 合法的正常下标 , 可以访问集合中的元素 , 该用法与 Kotlin 类似 ;
def list2 = ["1", "2", "3"]
// 通过下标访问集合元素
print list2[0] + " "
print list2[1] + " "
print list2[2] + " "
打印结果为
1 2 3
( 2 ) 负数下标
如果 下标为负数 , 如 -1 , 则相当于访问倒数第一个取值 , 即访问 list.size() - 1 下标取值 , 下面的两种用法是等效的 ;
// 为 ArrayList 设置初始值
def list2 = ["1", "2", "3"]
// 访问集合的 -1 元素下标
// 相当于倒过来取值 , 倒数第一个取值
println list2[-1] + " "
// 该用法等价于 -1 下标取值
println list2[list2.size() - 1] + " "
打印结果为 :
3
3
( 3 ) 正数下标但超出范围
如果 ArrayList 取值的下标是正数 , 但是超过了范围 , 则获取的值为 null ;
// 为 ArrayList 设置初始值
def list2 = ["1", "2", "3"]
// 如果下标超出了 , 获取的值为 null
println list2[4] + " "
3、使用 IntRange 作为下标访问集合
IntRange 实例对象 也可以作为 集合的访问下标 , 获取的是一个 新的子集合 ;
// 为 ArrayList 设置初始值
def list2 = ["1", "2", "3"]
// 取其中的某个范围的值
println list2[0..1] + ""
println list2[1..2] + ""
打印结果 :
[1, 2, ]
[2, 3, ]
4、修改使用 IntRange 作为下标访问集合不影响原集合的元素值
修改使用 IntRange 作为下标访问集合 不影响原集合的元素值 , 原来集合中的元素的值不变 , 这说明获取的集合是 新创建的一个集合 ;
// 为 ArrayList 设置初始值
def list2 = ["1", "2", "3"]
// 取出的值组成的是一个新的集合
// 修改新集合中的数据 , 不会对老集合产生影响
def list3 = list2[0..2]
list3[0] = "8"
println list2
println list3
执行结果 :
[1, 2, 3]
[8, 2, 3]
三、完整代码示例
完整代码示例 :
class Test
static void main(args)
// I . 创建 ArrayList 集合
// 使用 [] 为变量赋值
// 该变量默认为 ArrayList 类型
def list = []
// 打印 [] 变量类型
println list.class
// II . 创建 LinkedList 集合
// 创建 LinkedList
def list1 = [] as LinkedList
// 打印 list1 变量类型
println list1.class
// III . 创建 ArrayList 为集合元素赋值 , 使用下标访问集合元素
// 为 ArrayList 设置初始值
def list2 = ["1", "2", "3"]
// 通过下标访问集合元素
print list2[0] + " "
print list2[1] + " "
print list2[2] + " "
println ""
// 访问集合的 -1 元素下标
// 相当于倒过来取值 , 倒数第一个取值
println list2[-1] + " "
// 该用法等价于 -1 下标取值
println list2[list2.size() - 1] + " "
// 如果下标超出了 , 获取的值为 null
println list2[4] + " "
// 取其中的某个范围的值
println list2[0..1] + ""
println list2[1..2] + ""
// 取出的值组成的是一个新的集合
// 修改新集合中的数据 , 不会对老集合产生影响
def list3 = list2[0..2]
list3[0] = "8"
println list2
println list3
执行结果 :
class java.util.ArrayList
class java.util.LinkedList
1 2 3
3
3
null
[1, 2, ]
[2, 3, ]
[1, 2, 3]
[8, 2, 3]
以上是关于Groovy集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )的主要内容,如果未能解决你的问题,请参考以下文章
GroovyGroovy 方法调用 ( 使用 对象名.@成员名 访问 Groovy 对象成员 )
Groovy编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
GroovyGroovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )