簡體   English   中英

如何防止對象ArrayList中的重復項

[英]How To Prevent Duplicates In Object ArrayList

我有一個自定義對象數組列表,該對象必須在數組列表中,但是我在列表中有一些重復項,我想在添加到列表之前進行檢查。 如何做到這一點。 受害人SocialSecurityNumber是唯一的。 下面是我的代碼:

while (rs.next()){

       Citizens victims = new Citizens();
       victims.setSocialSecurityNumber(rs.getInt("victimSocialSecurityNumber"));

       victims.setfName(rs.getString("victimFName"));

       victims.setlName(rs.getString("victimLName"));

       victims.setPhoto(rs.getString("victimPhoto"));

       victims.setName(rs.getString("victimFName") +" "+ rs.getString("victimLName"));


       crime.getVictims().add(victims);         

您可以將arraylist轉換為set並返回以擺脫重復項,或者直接使用僅允許排序的唯一元素的結構:LinkedHashSet

假設公民優先於等於,您可以這樣做

 if (!crime.getVictims().contains(victims)) {
       crime.getVictims().add(victims);  
 }

盡管通常在不允許重復時解決方案是“設置”

如果您不確定如何覆蓋equals / hashCode,請閱讀http://javarevisited.blogspot.com/2011/10/override-hashcode-in-java-example.html

您可以使用哈希集添加對象並將其轉換為Arraylist。 這可以幫助您檢查受害者是否唯一。

設置hashset = new HashSet();

而(rs.next()){

   Citizens victims = new Citizens();
   victims.setSocialSecurityNumber(rs.getInt("victimSocialSecurityNumber"));

   victims.setfName(rs.getString("victimFName"));

   victims.setlName(rs.getString("victimLName"));

   victims.setPhoto(rs.getString("victimPhoto"));

   victims.setName(rs.getString("victimFName") +" "+ rs.getString("victimLName"));

   hashset.add(victims);       

}

列表列表= new ArrayList(hashset);

我在這里可能是完全錯誤的,但是for循環不能解決您的問題嗎? 您可以將要添加的內容與arraylist中的所有元素進行比較,如果沒有匹配項,請將其添加,如果沒有,則添加?

如何在 ArrayList 中查找重復項<object> ?<div id="text_translate"><p> 這是一個很常見的問題,但我找不到這部分:</p><p> 假設我有這個數組列表:</p><pre> List&lt;MyDataClass&gt; arrayList = new List&lt;MyDataClass&gt;; MyDataClass{ String name; String age; }</pre><p> 現在,我需要根據MyDataClass中的age查找重復項並將其刪除。 如何使用<a href="http://www.javadb.com/remove-duplicate-items-from-an-arraylist" rel="nofollow">此處</a>描述的 HashSet 之類的東西?</p><p> 我想,我們需要覆蓋 MyDataClass 中的equals嗎?</p><ol><li> 但是,如果我沒有這樣做的奢侈呢?</li><li> 而HashSet實際上是如何在內部找到並且不添加重復項的? 我<a href="http://www.google.com/codesearch#TTY8xLpnKOE/src/share/classes/java/util/HashSet.java&amp;q=HashSet&amp;type=cs&amp;l=103" rel="nofollow">在 OpenJDK 中</a>看到了它的實現,但無法理解。</li></ol></div></object>

[英]How to find duplicates in an ArrayList<Object>?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何在 ArrayList 中查找重復項<object> ?<div id="text_translate"><p> 這是一個很常見的問題,但我找不到這部分:</p><p> 假設我有這個數組列表:</p><pre> List&lt;MyDataClass&gt; arrayList = new List&lt;MyDataClass&gt;; MyDataClass{ String name; String age; }</pre><p> 現在,我需要根據MyDataClass中的age查找重復項並將其刪除。 如何使用<a href="http://www.javadb.com/remove-duplicate-items-from-an-arraylist" rel="nofollow">此處</a>描述的 HashSet 之類的東西?</p><p> 我想,我們需要覆蓋 MyDataClass 中的equals嗎?</p><ol><li> 但是,如果我沒有這樣做的奢侈呢?</li><li> 而HashSet實際上是如何在內部找到並且不添加重復項的? 我<a href="http://www.google.com/codesearch#TTY8xLpnKOE/src/share/classes/java/util/HashSet.java&amp;q=HashSet&amp;type=cs&amp;l=103" rel="nofollow">在 OpenJDK 中</a>看到了它的實現,但無法理解。</li></ol></div></object> 防止在arraylist中重復 如何在Java中的arraylIst中防止對象復制 如何從 ArrayList 的 ArrayList 中刪除重復的 ArrayList 如何不將重復項添加到arrayList 從ArrayList中刪除重復項 <ArrayList<String> &gt;對象 Java:如何防止使用條件語句將重復項添加到ArrayList中? 如何防止數組中的重復? 如何從 arraylist 中刪除重復項 消除或避免在具有自定義對象的ArrayList中添加重復項
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM