Опитвам се да добавя дублиращи се стойности в HashSet, като модифицирам неговия метод hashCode() и equals()?
Опитах кода по-долу
public class dupSet {
static Set set= new HashSet();
@Override
public int hashCode() {
return (int) (100*Math.random());
}
@Override
public boolean equals(Object obj) {
return false;
}
public static void main(String[] args) throws ParseException {
set.add("a");
set.add("b");
set.add("a");
System.out.println(set);
}
}
Според моето разбиране, ако за два дубликата на "а" HashSet първо ще получи hashCode(), за да получи подходяща кофа и след това ще провери стойността на equals(), ако е равно връща true, тогава няма да добави, но ако върне false, тогава ще добави. Така че за добавяне на дублираща се стойност към моя Set аз замествам equals(), който винаги връща false, но все пак set не позволява дублирани стойности?
HashSet
.. ЗАЩО?! - person Maroun   schedule 05.10.2014Set
, ако искате да съдържа дублирания? Защо не използватеList
вместо това? - person msrd0   schedule 05.10.2014