Проблема заключается в том, что equals
для массивов определяется как ссылочное равенство. Другими словами, два разных массива, которые содержат одни и те же элементы, НЕ равны ... по методу equals
.
Если вы хотите, чтобы equals
для объектов транзакции основывался на равенство строк, вам нужно создать собственный класс для хранения String[]
и переопределить метод equals
и метод hashcode
.
Кстати, массив equals(Object)
метод не «немного сломан». Определенная семантика equals
просто отражает тот факт, что любой объект массива по своей сути изменен.