2017-01-05 3 views
0

Я пытаюсь удалить все повторяющиеся объекты с тем же значением в одном свойстве. У меня есть courses[] объектов, и все они содержат courseLevel, который состоит из четырех цифр integer.Проверка значения текущего объекта по сравнению с другими

Я приращение x от 0 в цикле и хранение данных и переустановка его каждый итерации цикла, чтобы сохранить новую информацию в следующем увеличивается courses[x] объекта.

 for (int n = 0; n < courses.length; n++) { 
      if (courses[x].getCourseLevel() == courses[n].getCourseLevel()) { 
       System.out.println("Duplicate" + courses[x]); 
      } 
     } 

Как вы можете видеть, я начинаю с courses[x] и хочу проверить, если его courseLevel равно любые из других объектов, которые были созданы в эту точку, но проблема она проверяет его сам, как я могу проверить все courses[n] За исключением courses[x]

Пробовал использовать equals(), но не смог сравнить типы int.

+6

Вы можете попробовать '&& х! = N' – Compass

+2

Чем проще всего было бы переопределить' равна() 'и' хэш-код() 'методы, а затем поместить все объекты в' Set', чтобы получить только уникальные объекты. – user2004685

+0

Я на самом деле пробовал это. Я добавил все свои объекты в список. Затем к набору и обратно в список. Затем я отсортировал их по курсуLevel (по возрастанию). У меня все еще есть дубликаты. – OneU

ответ

0
for (int n = 0; n < courses.length; n++) { 
     if ((courses[x].getCourseLevel() == courses[n].getCourseLevel()) && x != n) { 
      System.out.println("Duplicate" + courses[x]); 
     } 
    } 
Смежные вопросы