亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個列表中的公共元素

兩個列表中的公共元素

森林海 2019-07-15 16:51:19
兩個列表中的公共元素我有兩個ArrayList對象,每個對象具有三個整數。我想找到一種方法來返回這兩個列表的共同元素。有誰知道我怎么做到的嗎?
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

使用Java 8Stream.filter()結合法List.contains():

import static java.util.Arrays.asList;

import static java.util.stream.Collectors.toList;


/* ... */


List<Integer> list1 = asList(1, 2, 3, 4, 5);

List<Integer> list2 = asList(1, 3, 5, 7, 9);


List<Integer> common = list1.stream().filter(list2::contains).collect(toList());


查看完整回答
1 反對 回復 2019-07-15
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

使用Collection#retainAll().

listA.retainAll(listB);// listA now contains only the elements which are also contained in listB.

如果您想避免更改會在listA,然后你需要創建一個新的。

List<Integer> common = new ArrayList<Integer>(listA);common.retainAll(listB);
// common now contains only the elements which are contained in listA and listB.


查看完整回答
反對 回復 2019-07-15
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您可以在您的ArrayList物品。


就像這樣:


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


l1.add(1);

l1.add(2);

l1.add(3);


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

l2.add(4);

l2.add(2);

l2.add(3);


System.out.println("l1 == "+l1);

System.out.println("l2 == "+l2);


List<Integer> l3 = new ArrayList<Integer>(l2);

l3.retainAll(l1);


    System.out.println("l3 == "+l3);

    System.out.println("l2 == "+l2);

現在,l3之間應該只有共同的元素l1和l2.


CONSOLE OUTPUT

l1 == [1, 2, 3]

l2 == [4, 2, 3]

l3 == [2, 3]

l2 == [4, 2, 3]


查看完整回答
反對 回復 2019-07-15
  • 3 回答
  • 0 關注
  • 722 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號