【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )(二)

简介: 【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )(二)

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]

image.png

目录
相关文章
|
Kotlin
【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )(一)
【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )(一)
372 0
|
Java 编译器
Java数组转集合与集合转数组的坑
Java数组转集合与集合转数组的坑在Java中将数组转为集合,会用到Arrays.asList()的方法,然而,这个方法却与我们的预期期望存在一些出入,当用到asList方法将数组转化成List列表时,对得到的List列表进行add()和remove()操作, JVM会抛出异常:java.
1114 0
|
7月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
114 4
|
C#
C# List集合赋值
list集合赋值(固定)
247 0
|
10月前
|
存储 Scala
创建集合和数组
创建集合和数组
61 0
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
1447 0
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
集合转数组
ArrayList.toArray()推荐有参数,还是无参数,为什么? 2)如果有参数,那么参数的数组长度是多少
149 0
|
4月前
集合和数组比较
数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。 数组容易固定无法动态改变,集合类容量动态改变。 数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数 集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,
|
存储 Java 索引
【Java】集合与数组关系,认识集合,使用集合,集合使用判断情况
【Java】集合与数组关系,认识集合,使用集合,集合使用判断情况
10776 0