共計 791 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Java 中,可以使用以下幾種方式來取兩個對象集合的差集:
- 使用循環遍歷方式:遍歷第一個集合,檢查每個元素是否存在于第二個集合中,如果不存在則加入差集集合中。這種方法的時間復雜度為 O(n^2),其中 n 為集合的大小。
List
- 使用 Java 8 的 Stream API:將兩個集合轉換為 Stream,使用 filter 方法篩選出不在第二個集合中的元素,并使用 collect 方法將結果收集到差集集合中。這種方法的時間復雜度為 O(n+m),其中 n 和 m 分別為兩個集合的大小。
List difference = list1.stream()
.filter(obj -> !list2.contains(obj))
.collect(Collectors.toList());
- 使用 Apache Commons Collections 庫:使用 CollectionUtils 類的 subtract 方法,將第一個集合和第二個集合作為參數傳入,得到差集集合。這種方法的時間復雜度為 O(n+m),其中 n 和 m 分別為兩個集合的大小。
List difference = (List) CollectionUtils.subtract(list1, list2);
需要注意的是,如果集合中的元素是自定義類的對象,需要重寫對象的 equals 方法和 hashCode 方法,以便正確比較對象是否相等。
丸趣 TV 網 – 提供最優質的資源集合!
正文完