4 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
一種方法是,將兩個(gè)列表中的元素放入Set
,檢查是否set.size()
與list1.size()+list2.size()
diff將是重復(fù)元素的計(jì)數(shù)。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
試試這個(gè) :
ArrayList intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
相交處將包含共同要素

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用以下代碼:
Set<String> set = new HashSet<>(list1);
set.addAll(list2);
System.out.println(((list1.size() + list2.size()) - set.size()));

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
我不知道這是否是最有效的方法,但我會(huì)做這樣的事情:
public static int getCommonValues() {
int values = 0;
if(list1 != null && list2 != null) {
Iterator it = list1.iterator();
while(it.hasNext()) {
String value = it.next();
Iterator it2 = list2.iterator();
while(it2.hasNext()) {
String value2 = it2.next();
if(value2 == value) {
values = values + 1;
break;
}
}
}
}
return values;
}
添加回答
舉報(bào)