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

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

文章目录

一、集合中有集合元素时调用 flatten 函数拉平集合元素

二、完整代码示例





一、集合中有集合元素时调用 flatten 函数拉平集合元素


在上一篇博客 【Groovy】集合遍历 ( 操作符重载 | 集合中的 “ << “ 操作符重载 | 使用集合中的 “ << “ 操作符添加一个元素 | 使用集合中的 “ << “ 操作符添加一个集合 ) 中 , 使用集合中的 “ << “ 操作符添加一个集合 , 得到的结果是 [“1”, “2”, “3”, “4”, [“5”, “6”]] ;



如果想要得到 [“1”, “2”, “3”, “4”, “5”, “6”] 结果 , 可以调用 集合的 flatten 方法 , 拉平该集合 , 就会自动将 集合中的 集合元素 拆分成单个元素 , 最终可以得到一个全部都是 String 对象的集合 ;



拉平集合 时 , 如果集合中存在 数组 或 集合 , 会创建一个新集合 , 将 集合中的 数组 或 集合元素 , 添加到新集合中 , 原集合保持不变 ;


拉平集合 是一个有风险的操作 , 会改变集合的原始值 , 因此这里创建一个新集合存放拉平后的集合 , 不在原集合的基础上进行修改 ;



Collection 的 flatten 函数原型 :



/**
     * 拉平集合。此集合和任何嵌套数组或集合的内容(递归地)添加到新集合中。
     * <pre class="groovyTestCase">assert [1,2,3,4,5] == [1,[2,3],[[4]],[],5].flatten()</pre>
     *
     * @param self 要拉平的集合
     * @return 返回一个新集合 , 该集合中的元素都被拉平了
     * @since 1.6.0
     */
    public static Collection<?> flatten(Collection<?> self) {
        return flatten(self, createSimilarCollection(self));
    }





二、完整代码示例


完整代码示例 :


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
        // III. 调用集合的 flatten 方法拉平集合
        // 拉平集合
        list2 = list.flatten();
        // 打印 [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]]
[1, 2, 3, 4, [5, 6]]
flatten : [1, 2, 3, 4, 5, 6]

image.png

目录
相关文章
|
索引
【Groovy】集合遍历 ( 使用集合的 eachWithIndex 方法进行遍历 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 eachWithIndex 方法进行遍历 | 代码示例 )
418 0
【Groovy】集合遍历 ( 使用集合的 eachWithIndex 方法进行遍历 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
488 0
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
344 0
【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
1439 0
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
1.1 集合与函数
1.1 集合与函数
93 0
13.从入门到精通:Python 集合 集合的基本操作 1、添加元素 2、移除元素 3、计算集合元素个数 4、清空集合 5、判断元素是否在集合中存在 集合内置方法完整列表
13.从入门到精通:Python 集合 集合的基本操作 1、添加元素 2、移除元素 3、计算集合元素个数 4、清空集合 5、判断元素是否在集合中存在 集合内置方法完整列表
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
231 0
【Groovy】map 集合 ( map 集合操作符重载 | 使用 << 操作符添加一个元素 | 代码示例 )
|
Python
python之集合的创建与使用,遍历,集合常见的操作函数,集合与列表,元组,字典的嵌套
python之集合的创建与使用,遍历,集合常见的操作函数,集合与列表,元组,字典的嵌套
【Groovy】集合遍历 ( 调用集合的 any 函数判定集合中是否有指定匹配规则的元素 | 代码示例 )
【Groovy】集合遍历 ( 调用集合的 any 函数判定集合中是否有指定匹配规则的元素 | 代码示例 )
232 0
【Groovy】集合遍历 ( 调用集合的 any 函数判定集合中是否有指定匹配规则的元素 | 代码示例 )
|
6月前
集合中常见方法及遍历方式
集合中常见方法及遍历方式
41 1

热门文章

最新文章