Основное отличие между Set и List состоит в том, что набор не допускает дубликатов. Итак, вместо List<Integer[]>
Я пытаюсь создать Set<Integer[]>
так, чтобы не было двух элементов. Но я получаю следующие результаты, когда я прочитал Set<Integer[]>
Как переопределить метод equals массива?
[0, 4, 5]
[3, 4, 1]
[4, 5, 0]
[0, 3, 6]
[1, 3, 4]
[1, 2, 7]
Для моей реализации, [0, 4, 5]
и считаются равными. Поэтому мой вопрос: есть ли способ переопределить метод равных Integer[]
, чтобы метод функции set add
не позволял принимать как [0, 4, 5]
, так и ?
Почему вы не используете 'Set>' или somesuch? Или, 'Set '? Вы привязаны к 'Integer []' по какой-либо причине? –
nneonneo
И нет, вы ** не можете ** переопределить 'equals' для массива. – nneonneo
Существует аналогичный вопрос с ответом: http://stackoverflow.com/questions/12292513/how-to-overide-equals-for-array-in-java В этом примере они использовали примитивный тип, но вы можете использовать метод, который принимает массивы Object []. – lordoku