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]