2010-01-15 104 views
0

如何比較兩組大小相同的值。如何比較兩組中具有相同大小的值

+4

閱讀文檔,並嘗試一下。之後,向我們展示你是如何做到的。那麼我們可能會想出一個更好的方法。 – 2010-01-15 07:45:42

+0

@pavanc,如果每個人只花十秒鐘就你的問題寫一個答案,它對你會有多大幫助?難道你不會花更多的時間來問這個問題嗎?舉個例子,我不知道你真的在這裏問什麼。 – 2010-01-15 21:47:37

回答

-1

你可以使用迭代器。並通過迭代進行比較。 這樣的

 HashSet h1 = new HashSet(); 
    HashSet h2 = new HashSet(); 
    Iterator it1 = h1.iterator(); 

    while(it1.hasNext()){ 
     if(!h2.contains(it1.next())) 
      // do whatever u want 
      boolean notequal = true ; 
    } 
+0

我投下了這個解決方案,因爲HashSet是無序集合,意味着你永遠不知道里面的條目的順序是什麼。顯然不是解決方案。 – nanda 2010-01-15 07:58:21

+0

謝謝南大這是好的。 – GuruKulki 2010-01-15 08:05:32

+0

抓住你的改變太晚了,所以我不能收回我的downvote。不過,我認爲'equals()'實現的效果與編碼少得多。 – 2010-01-15 08:12:37

0

套具有相同的尺寸嗎?或者你在尋找兩套相同的尺寸值?

至於比較,集合中的值是什麼類型?

+1

@Asher:那裏沒有答案 - 所以我想補充說,作爲對問題的評論。 – 2010-01-15 07:50:15

+0

感謝您的反饋,Martin。我仍然習慣這裏的工作方式。 – 2010-01-16 08:24:09

3

我假設兩個集合都包含相同類型的對象。 然後,這取決於您是否可以依靠元素的固有比較,或者您是否需要其他類型的比較。

Apache CollectionUtils有一個名爲isEqualCollection

公共靜態布爾isEqualCollection(java.util.Collection中的一個,java.util.Collection中的B)超甜方法

7

嘿?是否使用Set對象中的等號不夠?

+1

有人會這麼認爲,所以+1。然而,這個問題還不夠明確,可能pavanc想要做一些不同的事情。 – 2010-01-15 08:09:52

+0

它們可能是兩個不同的Set實現,在這種情況下equals不起作用。 – 2010-01-15 08:41:34

+0

equals()在幾乎所有情況下仍然有效,除非您(a)使用IdentityHashMap的keySet(誰那樣做?)或者使用帶有與equals()不一致的比較器的SortedSet,而j​​avadoc並沒有明確提醒您去做。 – 2010-01-15 21:45:24

相關問題