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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy集合遍历 ( 操作符重载 | 集合中的 “ << “ 操作符重载 | 使用集合中的 “ << “ 操作符添加一个元素 | 使用集合中的 “ << “ 操作符添加一个集合 )相关的知识,希望对你有一定的参考价值。





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



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


leftShift 方法 , 有 2 2 2 个参数 , 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]]

以上是关于Groovy集合遍历 ( 操作符重载 | 集合中的 “ << “ 操作符重载 | 使用集合中的 “ << “ 操作符添加一个元素 | 使用集合中的 “ << “ 操作符添加一个集合 )的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Groovy集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )

Groovy集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )

Groovy集合遍历 ( “ *. “ 展开操作符 | 代码示例 )

Groovy集合遍历 ( “ *. “ 展开操作符 | 代码示例 )