Android: SortedList с дубликатами

У меня проблемы с пониманиемRecyclerViews SortedList.

Допустим, у меня есть очень простой класс, имеющий только очень простой класс, содержащий данные:

public class Pojo {
    public final int id;
    public final char aChar;

    public Pojo(int id, char aChar) {
        this.id = id;
        this.aChar = aChar;
    }

    @Override
    public String toString() {
        return "Pojo[" + "id=" + id
                + ",aChar=" + aChar
                + "]";
    }
}

Насколько я понимаю, отсортированный список не будет содержать дубликатов.

Но когда у меня есть SortedList с обратными вызовами, как это:

....

@Override
public boolean areContentsTheSame(Pojo oldItem, Pojo newItem) {
    return oldItem.aChar == newItem.aChar;
}

@Override
public int compare(Pojo o1, Pojo o2) {
    return Character.compare(o1.aChar, o2.aChar);
}

@Override
public boolean areItemsTheSame(Pojo item1, Pojo item2) {
    return item1.id == item2.id;
}

Я получаю дубликаты, когда добавляю несколько элементов с одинаковым идентификатором, но разными символами.

sortedList.add(new Pojo(1, 'a'));
sortedList.add(new Pojo(1, 'b'));

Я ожидаю, что список обновит элемент. Вместо этого теперь у меня есть несколько предметов, хотяareItemsTheSame возвращенныйtrue.

Ответы на вопрос(0)

Ваш ответ на вопрос