У меня есть метод, который читает из БД (работает нормально)
@Insert
Completable insert(List<Weather> data);
например data.size = 16;
Объект погоды
public class Weather {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
public String description;
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Weather)) {
return false;
}
return name.equalsIgnoreCase(((Weather) obj).name);
}
@Override
public int hashCode() {
int hash = 3;
hash = 53 * hash + (name != null ? name.hashCode() : 0);
return hash;
}
в объекте данных выглядят так: 1 описание Лондона 2 описание Лондона 3 описание Берлина и т. д.
метод в действии
public void readData() {
mCompositeDisposable.add(mDatabase.getWeatherDao().getAllData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.distinct()
.subscribeWith(new DisposableObserver<List<Weather>>() {
@Override
public void onNext(List<Weather> weathers) {
callback.onCompleteRead(weathers);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
}));
}
Мне нужно, чтобы погода не имела дублирующегося имени, которое я добавляю отчетливо ипереопределить равно и хэш-код в Weather, но это не работает Как я могу это исправить?Может я неправильно переопределил метод