В клетках1 у меня есть список значений, то есть [4000,4001,4002,4003] и в клетках2, то есть [1234,4000]. Я пытаюсь найти дубликаты и уникальную ценность, но даже имея ее дублирующее значение, каждый раз, когда вы ищем часть. почему какой-то код не так.
Iterator itr = cells2.iterator();
while(itr.hasNext()){
HSSFCell s = (HSSFCell) itr.next();
boolean sta = cells1.contains(s.getStringCellValue());
if(sta==true){
System.out.println("Dublicate:>>>>"+s.toString());
}else{
System.out.println("unique value:>>>>:"+s.toString());
}
}
}
выставляемое значение:
уникальное значение: >>>>: 1234
уникальное значение: >>>>: 4000 <- это неправильно
Из вашего комментария cells1
является ArrayList<Cell>
поэтому вы вызываете cells1.contains(s.getStringCellValue());
означает поиск String
в ArrayList
из Cells
который не будет делать ничего, почему он переходит к части else.
В конечном итоге вы пытаетесь найти String
in Cells
что невозможно напрямую.
Вы должны сравнить значение String
каждой ячейки (означает значение String
ячейки) ArrayList<Cell>
с вашим s.getStringCellValue()
вы должны переопределить, contains
метод или объявляет свой собственный метод.
public boolean isThereAnyCellWithString(String str){
//Iterate over cells1 and compare
//Use contains here if you want to or equals to find exact match
for(HSSFCell cell : cells1){
if(cell.getStringCellValue().contains(str))
return true;
}
return false;
}
if(sta)
.cells1
?