Java Treeset не удаляет повторяющийся пользовательский объект с помощью пользовательского сравненияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java Treeset не удаляет повторяющийся пользовательский объект с помощью пользовательского сравнения

Сообщение Anonymous »

Я пытаюсь удалить повторяющийся объект, дубликат, если _id тот же или адрес электронной почты тот же. Я пытаюсь устранить дубликаты, если идентификаторы совпадают ИЛИ адреса электронной почты одинаковы, тогда сохраняйте запись с последней датой.
Мое пользовательское сравнение:

Код: Выделить всё

 @Override
public int compareTo(Lead other) {

// Compare by ID first
int idComparison = this._id.compareTo(other._id);
if (idComparison != 0) {
return idComparison;
}

int emailComparison = this.email.compareTo(other.email);
if (emailComparison != 0) {
return emailComparison;
}

// If IDs are the same, compare by date (latest first)
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date1 = dateFormat.parse( this.entryDate);
Date date2 = dateFormat.parse( other.entryDate);

return date1.compareTo(date2);
} catch (ParseException e) {

return 0; // Handle parsing errors appropriately
}
Мой объявленный и инициализированный

Код: Выделить всё

 // convert the JSON data to a Java object
LeadsData leads = gson.fromJson(reader, LeadsData.class);

// Remove duplicates using TreeSet
TreeSet uniqueRecords = new TreeSet(leads.leads);
Я не уверен, где я сделал не так. Я проверил документ Treeset, он кажется довольно простым.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -compareto
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»