2013-09-30 56 views

回答

4

java.util.Collections類爲有用的方法:

boolean hasDuplicateValue(HashSet hs1, HashSet hs2) {   
    return !Collections.disjoint(hs1,hs2); 
} 
4

林不知道,但你在談論這樣的事情?

boolean hasDuplicateValue(HashSet hs1, HashSet hs2) { 
    // you can add some null pointer defence if necessary 
    if (hs2.size() == 0) { 
     return false; 
    } 
    for (Object obj : hs1) { 
     if (hs2.contains(obj)) { 
      return true; 
     } 
    } 
    return false; 
} 
+2

只是一個音符,如果HS2大小是零,那麼他就可以返回false立即 – upog

+0

真的好點。 –

+0

更好地使用泛型:'HashSet的' –

0

看一看的guava-libraries提供一個Sets含有intersect方法。另一方面,這個方法需要兩個Set,而不是它們的實現。

0

要完成oleg.lukyrych答案: 如果你想刪除的警告,在方法聲明: 它是一個很好的做法,而是使用設置一個HashSet時可能:

<T> boolean hasDuplicateValue(Set<T> hs1, Set<T> hs2) { 
    for (T obj : hs1) { 
     if (hs2.contains(obj)) { 
      return true; 
     } 
    } 
    return false; 
} 
+0

很好的建議。我只是從問題主體採取了方法簽名。認爲這將是最相關的:) –