Возможно, LinkedHashSet делает то, что вы хотите. Он сохраняет элементы в (по умолчанию) порядке вставки.
Невозможно реализовать оба интерфейса одновременно (по крайней мере, если вы хотите следовать спецификациям для списка и набора), поскольку конфликтуют определения хеш-кода.
Возвращает значение хеш-кода для этого списка. Хэш-код списка определяется как результат следующего расчета:
hashCode = 1;
Iterator i = list.iterator();
while (i.hasNext()) {
Object obj = i.next();
hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
}
против
Возвращает значение хэш-кода для этого набора. Хэш-код набора определяется как сумма хэш-кодов элементов в наборе, где хэш-код нулевого элемента определяется как нуль. Это гарантирует, что s1.equals (s2) подразумевает, что s1.hashCode() == s2.hashCode() для любых двух наборов s1 и s2, как того требует общий контракт метода Object.hashCode.
Это то, что я искал. Повторяя повторное использование и простоту, вы бы рекомендовали просто создать мой класс или импортировать эту библиотеку из maven? Кроме того, почему он не связан со стандартной реализацией списка? – simpatico
Я бы импортировал эту библиотеку, если вы не почувствуете необходимость воссоздать ее самостоятельно, этот выбор за вами. –
@simpatico: Вы можете поддержать @ ответ Энтони, если найдете его полезным. :). Ура! – ivorykoder