Для лучшего понимания я просто опишу свою конструкцию данных.
Я прочитал Информация о графике из двух разных баз данных и хранить ее в абстрактном представлении графика. Поэтому у меня есть два хэшмапа, по одному для каждой базы данных. Карта содержит строку как ключ и объект graphlayer как значение: hashmap . Объект GraphLayer имеет двух пользовательских членов типа PapermetAdata и конференций по конференциям, а также . PapermetAdata состоит из некоторых членов примитивной строки типа и члена HashMap . Автор содержит только примитивные элементы строки, а также принадлежность. ConferencenceserieAndinstance содержит также нормальные элементы строки и член типа Hashmap , где класс ConferenceInstance просто конатины строки.
Я надеюсь, что пока все ясно. После этого я конвертирую каждую карту в список. Пока все хорошо, но порядок объектов в списке отличается (а также на карте, прежде чем я преобразую карту). Актерский состав от Hashmap до ArrayList выглядит так. < /P>
Код: Выделить всё
public List searchAuthor() {
...
return (List) new ArrayList(graph.values());
}
< /code>
Но оба списка содержат одинаковые объекты. Если я вызову метод hashcode () < /code> из каждого списка, я получаю разные хэш -коды. < /P>
Я не понимаю, почему я получаю разные хэш -коды. Согласно документации Java, хэш -код списка будет создан так. < /P>
int hashCode = 1;
for (E e : list)
hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
< /code>
Таким образом, порядок элементов в списке не должен играть роль. Если я попробую это с списком с примитивными датами, такими как String, он будет работать, но не с моим пользовательским датом. < /p>
У кого -то есть идея, почему он не работает? из PapermetAdata Возможно, кто -то может мне помочь. С уважением и заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/342 ... hash-codes
Мобильная версия