ArrayList的indexOf()在java中返回-1

时间:2013-10-26 09:52:43

标签: java list comparison return-value indexof

我正在使用数据库中的数据验证我的数据列表,以避免重复插入数据库,如果存在重复,那么我想要该文件的索引在文件中,使用下面的代码,

List<StudentMaster> studentMasterListFromDB = studentMasterDao.getStudentList();
List<StudentMasterVO> studentMasterListFromFile = getStudentMasterListFromFile();

for(int index=0;index<studentMasterListFromDB.size();index++){
    StudentMasterVO studentMasVO = new StudentMasterVO();
    StudentMaster studentMaster = studentMasterListFromDB.get(index);       
    BeanUtils.copyProperties(studentMasVO, studentMaster);      
    int indexOfexistingRec = studentMasterListFromFile.indexOf(studentMasVO);
    System.out.println("indexOfexistingRec :"+indexOfexistingRec);


}

但“indexOfexistingRec”值为-1,而不是现有记录索引的索引。

1 个答案:

答案 0 :(得分:3)

您需要在hashCodeequals类中实施StudentMasterStudentMasterVO方法,以便正确比较它们的相等性。

如果您正在使用Eclipse(或任何其他IDE),那么它可以为您生成这些方法,只需选择比较时要考虑哪些字段。

如果您不熟悉这个概念,请参阅本文:http://www.javaworld.com/community/node/1006