Java Set HashSet

140
13 мая 2019, 19:00

Имеется HashSet объектов из них хотелось бы что бы хеш объекта и его уникальность оценивалась только по определённому его полю а не по всему объекту...Это нужно что бы не создавать вторую такую же коллекцию с ссылками на элементы первой...Можно ли это как-то добиться?

Answer 1

Пример (код сгенерированый IntelliJ):

public class ExampleObj {
    private int id;
    private String msg;
    @Override public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ExampleObj that = (ExampleObj ) o;
        return Objects.equals(id, that.id);
    }
    @Override public int hashCode() {
        return Objects.hash(id);
    }
}

Пример с библиотекой Lombok

@EqualsAndHashCode(exclude = {"msg"})
public class ExampleObj {
    private int id;
    private String msg;
}
READ ALSO
Класс String и его методы compareTo() и compareToIgnoreCase()

Класс String и его методы compareTo() и compareToIgnoreCase()

Методы compareTo() и compareToIgnoreCase() позволяют сравнивать строки, но они позволяют вычислить насколько одна строка больше другойКак я понял

178
Возврат в главную активность

Возврат в главную активность

Имеется следующая проблема: при возврате из одной активности в другую, мне необходимо, чтобы открывался определенный пункт меню главной...

140
byte array в string как “0” и “1”

byte array в string как “0” и “1”

Как преобразовать массив битов в текстовый вид так, чтобы это выглядело как набор из 0 и 1?

155