杭州螞蟻 做網(wǎng)站的公司鄭州今日頭條
文章目錄
- 基本類型
- 對(duì)象類型
基本類型
ListUtils.subtract
方法用于計(jì)算兩個(gè)集合的差集,即返回 list1
中有但 list2
中沒(méi)有的元素。
其中,list1
指向第一個(gè)集合,list2
指向第二個(gè)集合。該方法返回一個(gè)新的 List
對(duì)象,它包含所有在 list1
中,但不在 list2
中的元素。
以下是使用 ListUtils.subtract
方法的示例代碼:
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> diff = ListUtils.subtract(list1, list2);
System.out.println("List1: " + list1); // [1, 2, 3, 4, 5]
System.out.println("List2: " + list2); // [3, 4, 5, 6, 7]
System.out.println("Diff: " + diff); // [1, 2]
在上面的示例中,我們使用 ListUtils.subtract
方法計(jì)算了兩個(gè)整數(shù)列表的差集。具體來(lái)說(shuō),我們創(chuàng)建了兩個(gè)列表 list1
和 list2
,它們有一些相同的元素(即3、4和5)。然后,我們使用 ListUtils.subtract
方法計(jì)算 list1
和 list2
的差集,并將結(jié)果存儲(chǔ)在 diff
變量中。輸出結(jié)果表明,diff
中包含了 list1
中有但 list2
中沒(méi)有的元素 1 和 2。
需要注意的是,ListUtils.subtract
方法返回的是一個(gè)新的 List
對(duì)象,并不會(huì)修改原始的列表。
對(duì)象類型
public class MyClass {private String name;private int value;// 省略構(gòu)造方法和其他方法// 省略getter和setter方法
}// 創(chuàng)建包含自定義對(duì)象的列表
List<MyClass> list1 = new ArrayList<>();
list1.add(new MyClass("A", 1));
list1.add(new MyClass("B", 2));
list1.add(new MyClass("C", 3));List<MyClass> list2 = new ArrayList<>();
list2.add(new MyClass("B", 2));
list2.add(new MyClass("C", 3));
list2.add(new MyClass("D", 4));// [{"name":"A","value":1}]
List<MyClass> diff1 = ListUtils.subtract(list1, list2);
// [{"name":"D","value":4}]
List<MyClass> diff2 = ListUtils.subtract(list2, list1);
在這個(gè)示例中,我們有兩個(gè)包含自定義對(duì)象 MyClass
的列表 list1
和 list2
。我們使用 ListUtils.subtract
方法計(jì)算了這兩個(gè)列表的差集,并將結(jié)果存儲(chǔ)在 diff
變量中。最終得到的 diff
列表包含了 list1
中有但 list2
中沒(méi)有的元素。
需要注意的是,為了使 ListUtils.subtract
方法正常工作,MyClass
類需要正確實(shí)現(xiàn) equals
和 hashCode
方法,以便進(jìn)行對(duì)象的比較和判斷。