園林設(shè)計公司東莞網(wǎng)絡(luò)優(yōu)化哪家好
Java Stream API 提供了一種非常方便的方式來比較兩個 List 的差異,并取出不同的對象。這可以通過使用 distinct() 和 filter() 方法來實現(xiàn)。
假設(shè)我們有兩個 List,一個是 list1,另一個是 list2,我們想找出 list1 中存在但 list2 中不存在的元素。
以下是如何實現(xiàn)的示例代碼:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list1 = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry"); List<String> list2 = Arrays.asList("Apple", "Banana", "Cherry", "Fig", "Grape"); List<String> diffList1 = list1.stream() .filter(s -> !list2.contains(s)) .collect(Collectors.toList()); System.out.println("Difference in list1: " + diffList1); }
}
在這個例子中,我們使用了 stream() 方法來創(chuàng)建一個從 list1 的元素到流的管道。然后,我們使用了 filter() 方法來過濾出 list2 中不存在的元素。最后,我們使用 collect() 方法將結(jié)果收集到一個新的 List 中。輸出結(jié)果將是 list1 中存在但 list2 中不存在的元素。
如果你想找出 list2 中存在但 list1 中不存在的元素,只需將上述代碼中的 list1 和 list2 交換即可:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list1 = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry"); List<String> list2 = Arrays.asList("Apple", "Banana", "Cherry", "Fig", "Grape"); List<String> diffList2 = list2.stream() .filter(s -> !list1.contains(s)) .collect(Collectors.toList()); System.out.println("Difference in list2: " + diffList2); }
}