【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ << “ 操作符重载 | 使用集合中的 “ << “ 操作符添加一个元素 | 使用集合中的 “ << “ 操作符添加一个集合 )

简介: 【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ << “ 操作符重载 | 使用集合中的 “ << “ 操作符添加一个元素 | 使用集合中的 “ << “ 操作符添加一个集合 )

文章目录

一、集合中的 “ << “ 操作符重载

1、使用集合中的 “ << “ 操作符添加一个元素

2、使用集合中的 “ << “ 操作符添加一个集合

二、完整代码示例





一、集合中的 “ << “ 操作符重载


对集合使用 " << " 运算符号 , 该符号右边的值为 集合元素值 , 该操作相当于调用了 Collection 的 leftShift 方法 ;



leftShift 方法 , 有 2 22 个参数 , Collection<T> self 和 T value ;


" << " 运算符 左侧的参数是 Collection<T> self , 这是原集合 ;

" << " 运算符 右侧的参数是 T value , 这是要添加的集合元素 ;


返回值是添加了新元素的集合 , 该方法不会创建新集合 ;



Collection 的 leftShift 方法原型 :



 

/**
     * 重载左移位运算符,以提供将对象附加到集合的简单方法.
     * <pre class="groovyTestCase">def list = [1,2]
     * list << 3
     * assert list == [1,2,3]</pre>
     *
     * @param self  集合
     * @param value 向集合中添加的元素对象.
     * @return 返回原集合, 该集合中已经添加了元素对象.
     * @since 1.0
     */
    public static <T> Collection<T> leftShift(Collection<T> self, T value) {
        self.add(value);
        return self;
    }


1、使用集合中的 “ << “ 操作符添加一个元素


向 集合 [“1”, “2”, “3”] 中 , 添加 元素 “4” , 最终结果是 [“1”, “2”, “3”, “4”] ;



代码示例 :


     

// 为 ArrayList 设置初始值
        def list = ["1", "2", "3"]
        // I. 集合的 " << " 操作符重载 , 添加元素
        // 操作符重载 " << " 操作符相当于调用 leftShift 方法
        def list2 = list << "4"
        // 打印 [1, 2, 3, 4]
        println list
        // 打印 [1, 2, 3, 4]
        println list2



执行结果 :


[1, 2, 3, 4]
[1, 2, 3, 4]



2、使用集合中的 “ << “ 操作符添加一个集合


向 集合 [“1”, “2”, “3”, “4”] 中 , 添加 集合 [“5”, “6”] , 最终结果是 [“1”, “2”, “3”, “4”, [“5”, “6”]] ;



注意 : 如果 使用 " << " 操作符插入一个集合 , 则会 将该集合作为一个元素 , 插入到现有的集合中 ;


如 : 向 [“1”, “2”, “3”, “4”] 集合中插入 [“5”, “6”] 集合 , 最终结果是 [“1”, “2”, “3”, “4”, [“5”, “6”]] , 并不是 [“1”, “2”, “3”, “4”, “5”, “6”] ;



代码示例 :


   

// II. 集合的 " << " 操作符重载 , 添加集合
        // 操作符重载 " << " 操作符相当于调用 leftShift 方法
        list2 = list << ["5", "6"]
        // 打印 [1, 2, 3, 4, [5, 6]]
        println list
        // 打印 [1, 2, 3, 4, [5, 6]]
        println list2


执行结果 :


[1, 2, 3, 4, [5, 6]]
[1, 2, 3, 4, [5, 6]]




二、完整代码示例


完整代码示例 :


class Test {
    static void main(args) {
        // 为 ArrayList 设置初始值
        def list = ["1", "2", "3"]
        // I. 集合的 " << " 操作符重载 , 添加元素
        // 操作符重载 " << " 操作符相当于调用 leftShift 方法
        def list2 = list << "4"
        // 打印 [1, 2, 3, 4]
        println list
        // 打印 [1, 2, 3, 4]
        println list2
        // II. 集合的 " << " 操作符重载 , 添加集合
        // 操作符重载 " << " 操作符相当于调用 leftShift 方法
        list2 = list << ["5", "6"]
        // 打印 [1, 2, 3, 4, [5, 6]]
        println list
        // 打印 [1, 2, 3, 4, [5, 6]]
        println list2
    }
}



执行结果 :


[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4, [5, 6]]
[1, 2, 3, 4, [5, 6]]

image.png

目录
相关文章
|
2月前
集合和数组比较
数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。 数组容易固定无法动态改变,集合类容量动态改变。 数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数 集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,
|
8月前
|
存储 算法 Java
Java数组与集合的深入解析
Java数组与集合的深入解析
78 0
|
存储 机器学习/深度学习 Java
Java数组的定义和使用(一篇带你搞定数组)
Java数组的定义和使用(一篇带你搞定数组)
328 0
|
Java
2.3 Lambda表达式在集合操作中的应用:对集合元素进行映射和转换
2.3 Lambda表达式在集合操作中的应用:对集合元素进行映射和转换
167 0
|
存储 Java API
2.1 Lambda表达式在集合操作中的应用:使用Lambda表达式遍历集合
2.1 Lambda表达式在集合操作中的应用:使用Lambda表达式遍历集合
191 0
1.1 集合与函数
1.1 集合与函数
90 0
|
算法 开发者 Python
集合里运算符的使用| 学习笔记
快速学习集合里运算符的使用
集合里运算符的使用| 学习笔记
【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
124 0
【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
227 0
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
482 0
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )