2013-10-26 4 views
0

Я проверяю свой список данных из файла с данными в базе данных, чтобы избежать дублирования вставки в базу данных, если существует дубликат, тогда я хочу индекс этой записи в файле, am используя код, приведенный ниже,Индекс ArrayList indexOf() возвращает -1 в java

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, а не индекс существующего индекса записи.

+4

'-1' предполагает, что деталь вы искали не нашли. – devnull

+0

Спасибо за ответ. В моем списке есть запись поиска, но она показывает -1. – user2507974

+0

извините, это метод BeanUtils.copyProperties(). – user2507974

ответ

3

Вы должны реализовать hashCode и equals методы в ваших StudentMaster и StudentMasterVO классов, так что они будут должным образом сравнить на равенство.

Если вы используете Eclipse (или любую другую IDE), то он может генерировать эти методы для вас, просто выберите, какие поля следует учитывать при сравнении.

Смотрите, например эту статью, если вы не знакомы с понятием: http://www.javaworld.com/community/node/1006

+0

Спасибо за ответ, я уже использовал equals() и hashcode() для StudentMaster и StudentMasterVO. Но у меня все еще такая же проблема. Даже я также проверил хэш-коды, хеш-коды тоже поступают правильно. – user2507974

+0

Итак, что делает copyProperties? – siledh

+0

Его метод BeanUtils, просто копируя значение одного объекта в объект anthoer, здесь от объекта StudentMaster Object до объекта StudentMasterVO. Но я думаю, что это совсем не проблема. – user2507974

Смежные вопросы