使用Java的jdk自帶的Collection介面中定義的方法就可以了:
boolean retainAll(Collection<?> c);
jdk的實現都是比較高效的,有興趣的話可以自己看下原始碼是怎麼實現的。
下面給一個參考示例:
//使用如下:
public static void main(String[] args) {
List<Integer> listdata1 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
List<Integer> listdata2 = new ArrayList<>(Arrays.asList(new Integer[]{1,3,5}));
System.out.println("listdata1和listdata2求完交集後listdata1中元素髮生改變了,因此boolean值為:"+listdata1.retainAll(listdata2));
System.out.println("listdata1和listdata2求交集結果儲存在listdata1中,交集結果如下:"+listdata1);
List<Integer> listdata3 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
List<Integer> listdata4 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
System.out.println("listdata3和listdata4求完交集後listdata3中的元素並未改變,因此boolean值為:"+listdata1.retainAll(listdata2));
System.out.println("listdata3和listdata4求交集結果儲存在listdata3中,交集結果如下:"+listdata3);
}
使用Java的jdk自帶的Collection介面中定義的方法就可以了:
boolean retainAll(Collection<?> c);
jdk的實現都是比較高效的,有興趣的話可以自己看下原始碼是怎麼實現的。
下面給一個參考示例:
//使用如下:
public static void main(String[] args) {
List<Integer> listdata1 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
List<Integer> listdata2 = new ArrayList<>(Arrays.asList(new Integer[]{1,3,5}));
System.out.println("listdata1和listdata2求完交集後listdata1中元素髮生改變了,因此boolean值為:"+listdata1.retainAll(listdata2));
System.out.println("listdata1和listdata2求交集結果儲存在listdata1中,交集結果如下:"+listdata1);
List<Integer> listdata3 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
List<Integer> listdata4 = new ArrayList<>(Arrays.asList(new Integer[]{1,5,7}));
System.out.println("listdata3和listdata4求完交集後listdata3中的元素並未改變,因此boolean值為:"+listdata1.retainAll(listdata2));
System.out.println("listdata3和listdata4求交集結果儲存在listdata3中,交集結果如下:"+listdata3);
}