簡體   English   中英

是否有任何方法可以使用兩個數組列表的公共值創建另一個數組列表?

[英]Is there any method that creates another arraylist with the common values of two arraylists?

也就是說,如果我有下一個:

ArrayList<Integer> array1 = new ArrayList<Integer>();
ArrayList<Integer> array2 = new ArrayList<Integer>();

array1 ==> (1,11,12,13,14,15,16,17,18)
array2 ==> (1,17,18)

是否有任何方法可以創建具有公共值的另一個arraylist?

使用此ArrayList方法:

ArrayList#retainAll(java.util.Collection)

因此,將其放在您的代碼中。

 array1.retainAll(array2 );

例子==>

      List<Integer> first_list = new ArrayList<Integer>();

        first_list.add(10);
        first_list.add(20);
        first_list.add(30);

        List<Integer> second_list = new ArrayList<Integer>();
        second_list.add(40);
        second_list.add(20);
        second_list.add(30);

       List<Integer> third_list = new ArrayList<Integer>(second_list);
third_list.retainAll(first_list);

        for (int i = 0; i < third_list.size(); i++) {
            System.out.println("===>" + third_list.get(i));
        }

最后,我們在這里可以看到,third_list在列表first_list和second_list之間僅具有公共元素。

只需遍歷一個列表,然后檢查另一個列表中是否存在值

ArrayList<Integer> common = new ArrayList<Integer>();
for(int i: array1){
  if(array2.contains(i)){
     common.add(i);
  } 
}

嘗試這個,

ArrayList<Integer> result = new ArrayList<Integer>();
for (Integer value : array1)
{
   if (array2.contains(value))
    {
       result.add(value);
     }
}

您可以使用apache commons庫並使用ListUtils.intersection(list1,list2)方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM