回覆列表
  • 1 # 木木與呆呆

    使用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);

    }

  • 中秋節和大豐收的關聯?
  • 筆記本硬碟離線原因?