Java中的集合
Java LinkedList指南
Java ArrayList指南
Java中不可變的ArrayList
CopyOnWriteArrayList指南
JavaJava中的多維ArrayList
將迭代器轉換為列表
Java –從列表中獲取隨機項目/元素
用Java對列表進行分區
從Java列表中刪除所有Null
從Java中的列表中刪除所有重複項
檢查Java中兩個列表是否相等
如何使用Java在列表中查找元素
Java列表UnsupportedOperationException
將列表複製到Java中的另一個列表
從列表中刪除所有出現的特定值
將多個元素添加到Java ArrayList
從列表中刪除第一個元素
在Java中迭代列表的方法
Java中兩個列表的交集
如何計算Arraylist中的重複元素
查找Java中兩個列表之間的差異
在Java中壓縮集合
1。簡介
在本教程中,我們將演示如何將兩個集合壓縮到一個邏輯集合中
“zip”操作與標準的“concat”或“merge”略有不同。“concat”或“merge”操作只需在現有集合的末尾添加新集合,而“zip”操作將從每個集合中選取一個元素並將它們組合起來
覈心庫並不隱式地支持“zip”,但是確實有一些協力廠商庫提供了這種有用的操作
考慮兩個清單,一個有人名,另一個包含他們的年齡
清單<;String>;names=new ArrayList<;>(數組.asList(“約翰”,“簡”,“傑克”,“鄧尼斯”);
List<;Integer>;ages=new ArrayList<;>(數組.asList(24,25,27));
壓縮後,我們得到了由這兩個集合中的相應元素構造的名稱-年齡對
2。使用Java 8IntStream
使用覈心Java,我們可以使用IntStream生成索引,然後使用它們從兩個集合中選取相應的元素:
IntStream中的
IntStream
.範圍(0,數學.min(名稱.大小(),年齡.大小()))
.mapToObj(i->;名稱。獲取(i)+“:”+年齡。得到(i))
//…
3。使用芭樂流
從21版開始,googleguava在Streams類中提供了一個zip助手方法。這消除了創建和映射索引的所有麻煩,並减少了輸入和操作的語法:
流
.zip檔案(名稱.stream(),年齡.stream(),(姓名,年齡)—>;姓名+“:”+年齡)
//…
4。使用jOOλ**(jOOL)
jOOL在Java 8 Lambda上還提供了一些有趣的附加功能,在Tuple1到Tuple16的支持下,壓縮操作變得更加有趣:
序列
.of(“約翰”,“簡”,“鄧尼斯”)
.zip檔案(順序(24,25,27));
這將產生一個包含壓縮元素的元組的結果:
(元組(1,“a”),元組(2,“b”),元組(3,“c”))
jOOL的zip方法提供了提供自定義轉換函數的靈活性:
序列
.of(1,2,3)
.zip檔案(順序(“a”,“b”,“c”),(x,y)—>;x+“:”+y);
或者,如果只想壓縮索引,可以使用jOOL提供的zipWithIndex方法:
序號(“a”,“b”,“c”).zipWithIndex();
5。結論
在這個快速教程中,我們瞭解了如何執行zip操作
與往常一樣,本文中的程式碼示例可以找到在GitHub上,