亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
景德镇市| 民权县| 广丰县| 尉犁县| 滦南县| 临清市| 卢氏县| 沭阳县| 松江区| 皋兰县| 英吉沙县| 汉川市| 阿尔山市| 禄丰县| 宜兰市| 岳阳县| 阿图什市| 沅江市| 鹤庆县| 神池县| 桂东县| 万盛区| 临洮县| 吉木萨尔县| 灌云县| 浦江县| 临朐县| 桂平市| 湘潭县| 长葛市| 南靖县| 巴彦淖尔市| 昔阳县| 新和县| 宁陵县| 温州市| 柳林县| 宁南县| 乐平市| 伽师县| 江西省|