2015-03-19 11 views

Odpowiedz

5

Zestaw wewnętrznie implementuje mapę.Kiedy każda wartość w zestawie jest po prostu kluczem w mapie.Tak zachowuje swoją wyjątkowość.

Here to link. Aby uzyskać jasny obraz, jak zestaw działa wewnętrznie. Także kilka odpowiedzi na stos. First, Second

2

Zasadniczo zestaw to tylko mapa, która zawiera tylko klucze. Powinieneś więc poinformować się o algorytmie mapowania. Uwaga: HashSet na przykład jest tak naprawdę tylko adapterem dla HashMap. metoda dodawania HashSet używa po prostu HashMap.put (value, SomeDummyValue).

1

Poniżej znajduje się fragment kodu, aby wyjaśnić powyżej odpowiedzi o

public HashSet() { map = new HashMap<>(); } 
private transient HashMap<E,Object> map; 

// Dummy value to associate with an Object in the backing Map 
private static final Object PRESENT = new Object(); 

public boolean add(E e) { 
    return map.put(e, PRESENT)==null; 
} 

// Since PRESENT is a constant, for all keys we have same value in backup HashMap called map. 

public Iterator<E> iterator() { 
    return map.keySet().iterator(); 
} 
Powiązane problemy