繁体   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