我是HashSets的新手。我應該如何更改此代碼才能打印3?有沒有比hashset更好的方法?對於這個問題,比BST更適合HashSet嗎?用於查找重複陣列的HashSet
import java.util.HashSet;
import java.util.Set;
import java.util.ArrayList;
public class FindDuplicates {
//finding duplicates in array1 and array2 using hashset and putting them into a list
public ArrayList<Integer> findDuplicates(ArrayList<Integer> list1, ArrayList<Integer> list2){
ArrayList<Integer> duplicateList = new ArrayList<Integer>();
Set<Object> listTemp=new HashSet<>();
if (list1.size() < list2.size()){
listTemp.add(list1);
for (int i=0; i<list2.size();i++){
if (listTemp.contains(list2.get(i)))
duplicateList.add(list2.get(i));
}
}
else {
listTemp.add(list2);
for (int i=0; i<list1.size();i++){
if (listTemp.contains(list1.get(i)))
duplicateList.add(list1.get(i));
}
}
return duplicateList;
}
public static void main(String argc[]){
FindDuplicates fd= new FindDuplicates();
ArrayList<Integer> l1=new ArrayList<Integer>();
ArrayList<Integer> l2=new ArrayList<Integer>();
l1.add(3);
l1.add(1);
l1.add(5);
l2.add(3);
System.out.print(fd.findDuplicates(l1, l2));
}
}
是隻由唯一編號的陣列?我的意思是,例如,一個數組可以包含兩個「ones」嗎? –
好吧,這是一個很好的問題,我開始學習hashset,所以TBH對我來說不會有所不同,但是對於Set數據結構可能會有所不同嗎? –
井集只能包含每個數字一次(它包含一個數字或不)。數組可以多次具有相同的數字。只有在你有[1,1]和[1,2]的情況下確定你想要返回的差異的問題只是一個例子:-)但是假設你的列表中沒有重複,Mureinik的答案很好。 –