[英]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中的所有元素進行比較,如果沒有匹配項,請將其添加,如果沒有,則添加?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.