Найти уникальное и повторяющееся значение

1

В клетках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 <- это неправильно

  • 0
    К вашему сведению, вы можете просто сделать, if(sta) .
  • 0
    Что такое cells1 ?
Показать ещё 5 комментариев
Теги:
arrays
apache-poi

1 ответ

1

Из вашего комментария 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;
}
  • 1
    Спасибо, Ваша информация очень важна для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню