確定多個清單中的公共元素
在Java 中,您可能會遇到需要查找多個清單共享的公共元素的情況。對於比較資料集或識別交叉點等任務,這可能是有用的操作。本文探討了一種使用 Java 集合框架檢索兩個清單之間的公共元素的有效方法。
首先,考慮這樣的場景:您有兩個 ArrayList 對象,每個物件包含三個整數。您的目標是尋找並傳回兩個清單中都存在的元素。
解決方案:Collection#retainAll()
實現此目標的最簡單方法之一是透過使用 Collection#retainAll() 方法。此方法透過刪除指定集合參數中不存在的所有元素來修改呼叫集合。
listA.retainAll(listB);
執行上述程式碼後,listA 將只包含listA 和listB 共有的元素.
替代方法:建立新集合
如果您需要保留listA的原始內容,您可以創建一個包含公共元素的新集合:
List<Integer> common = new ArrayList<>(listA); common.retainAll(listB);
這種情況下,公共列表將僅包含listA 和listB 中都存在的元素,而原始列表listA 的內容保持不變。
基於流的解決方案
Java 8 引入了強大的流 API它提供了一種處理和操作集合的聲明性方式。您可以利用stream#filter()方法根據特定謂詞過濾元素:
List<Integer> common = listA.stream().filter(listB::contains).toList();
這種基於流的方法對listA中的每個元素執行過濾操作,檢查它是否存在於listB中contains( ) 方法。產生的清單將僅包含 listA 和 listB 之間的公共元素。
以上是Java中如何有效率地找出多個清單之間的共同元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!