【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]總結
以上是生活随笔為你收集整理的【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Groovy】集合遍历 ( 操作符重载
- 下一篇: 【Groovy】集合遍历 ( “ *.