我有一个自定义对象数组列表,该对象必须位于数组列表中,但是列表中有一些重复项,我想在添加到列表之前进行检查。如何做到这一点。受害人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);

最佳答案

假设公民优先于等于,您可以这样做

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


虽然通常在不允许重复时解决方案是“设置”

如果您不确定如何覆盖equals / hashCode,请阅读http://javarevisited.blogspot.com/2011/10/override-hashcode-in-java-example.html

09-25 22:14