2013-10-26 1 views
0

내 데이터 목록을 데이터베이스의 데이터로 검증하여 데이터베이스에 중복 삽입을 방지합니다. 중복이 존재하면 파일의 해당 인덱스를 원합니다.ArrayList의 indexOf()는 Java에서 -1을 반환합니다

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

StudentMasterStudentMasterVO 클래스에 hashCode 및 메서드를 구현하여 동등 함을 적절하게 비교해야합니다.

Eclipse (또는 다른 IDE)를 사용하는 경우 해당 메소드를 생성 할 수 있으며 비교할 때 고려할 필드를 선택하십시오. http://www.javaworld.com/community/node/1006

+0

답장을 보내 주셔서 감사합니다, 나는 이미 equals() 및 hashcode() StudentMaster 및 StudentMasterVO.But에 대한 동일한 문제가 여전히 오전 사용하고있다. 나는 또한 hashcodes 체크 또한 hashcodes 또한 제대로 올 수 있습니다. – user2507974

+0

그럼, copyProperties는 무엇을합니까? – siledh

+0

그것의 BeanUtils 메소드는 하나의 오브젝트의 값을 anthoer 오브젝트로 복사합니다. 여기 StudentMaster Object에서 StudentMasterVO Object로 바뀝니다.하지만 전혀 문제가 아닌 것 같습니다. – user2507974

관련 문제