91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java兩個對象集合取差集的方法是什么

小億
308
2023-08-25 00:12:44
欄目: 編程語言

在Java中,可以使用以下幾種方式來取兩個對象集合的差集:

  1. 使用循環遍歷方式:遍歷第一個集合,檢查每個元素是否存在于第二個集合中,如果不存在則加入差集集合中。這種方法的時間復雜度為O(n^2),其中n為集合的大小。
List<Object> list1 = new ArrayList<>();
List<Object> list2 = new ArrayList<>();
List<Object> difference = new ArrayList<>();
for (Object obj1 : list1) {
boolean found = false;
for (Object obj2 : list2) {
if (obj1.equals(obj2)) {
found = true;
break;
}
}
if (!found) {
difference.add(obj1);
}
}
  1. 使用Java 8的Stream API:將兩個集合轉換為Stream,使用filter方法篩選出不在第二個集合中的元素,并使用collect方法將結果收集到差集集合中。這種方法的時間復雜度為O(n+m),其中n和m分別為兩個集合的大小。
List<Object> difference = list1.stream()
.filter(obj -> !list2.contains(obj))
.collect(Collectors.toList());
  1. 使用Apache Commons Collections庫:使用CollectionUtils類的subtract方法,將第一個集合和第二個集合作為參數傳入,得到差集集合。這種方法的時間復雜度為O(n+m),其中n和m分別為兩個集合的大小。
List<Object> difference = (List<Object>) CollectionUtils.subtract(list1, list2);

需要注意的是,如果集合中的元素是自定義類的對象,需要重寫對象的equals方法和hashCode方法,以便正確比較對象是否相等。

0
随州市| 广灵县| 班戈县| 舟山市| 望城县| 南皮县| 儋州市| 临武县| 四平市| 湘潭市| 嘉义县| 固始县| 德阳市| 高邑县| 绍兴县| 丹寨县| 鄂温| 宝应县| 泸溪县| 刚察县| 阳泉市| 勃利县| 安吉县| 柏乡县| 江城| 萨嘎县| 凤山县| 陆良县| 无棣县| 青岛市| 阳曲县| 二手房| 弥勒县| 义乌市| 汉沽区| 钦州市| 出国| 镇平县| 寿阳县| 涪陵区| 新和县|