2013-05-10 8 views
16

W kolekcji Java, która kolekcja nie zezwala na duplikaty i która zachowuje kolejność danych?Kolekcja, która zachowa zamówienie reklamowe i nie będzie duplikatów.

+1

Czy to pomoże? http: // stackoverflow.com/questions/8712469/any-implementation-of-ordered-set-in-java – vikingsteve

+0

LinkedHashSet ............ –

+0

Dlaczego jest to oznaczone jako duplikat "Czy istnieje zestaw zachowujący zamówienie reklamowe? w Javie? " Nie jest to duplikat tego pytania, które pyta o Zestawy i listy; to pytanie dotyczy wszystkich kolekcji. – searchengine27

Odpowiedz

9
LinkedHashSet 

Jak na documentation

Implementacja ta różni się od HashSet tym, że utrzymuje podwójnie połączonej listy biegnącej przez wszystkich swoich wpisów. Ten związany lista określa kolejność iteracji, który jest kolejność, w jakiej elementy zostały wprowadzone do zbioru (wstawiania rzędu)

14

LinkedHashSet robi oboje

Set set = new LinkedHashSet(); 
+4

'HashSet' nie zachowuje kolejności wstawiania. –

+0

['HashSet'] (http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html) nie zachowuje zamówienia reklamowego. –

+0

Tak, przepraszam, ale zbyt podekscytowany :) – Sam

2

Można sprawdzić LinkedHashSet do tego celu.

A Set nie zezwala na powielanie wartości. A LinkedHashSet zachowa porządek reklamowy.

Hash tabela i lista powiązana implementacja interfejsu Set, z przewidywalną kolejnością iteracji . Ta implementacja różni się od HashSet tym, że utrzymuje listę podwójnie połączoną przez wszystkie jej wpisy . Ta połączona lista definiuje kolejność iteracji, czyli kolejność wstawiania elementów do zestawu (kolejność wstawiania). Należy pamiętać, że zamówienie reklamowe nie zostanie zmienione, jeśli element zostanie ponownie wstawiony do zestawu w postaci . (E Element włożony jest ponownie do zestawu S Jeżeli s.add (e) wywołana po s.contains (e) powróci prawda bezpośrednio przed wywołania.)

6

LinkedHashSet powinny pasowały .

tabeli mieszania i związane realizacja lista interfejsu Ustaw z rzędu przewidywalny iteracji. Ta implementacja różni się od HashSet tym, że utrzymuje listę podwójnie połączoną, która przechodzi przez wszystkie jej wpisy. Ta połączona lista definiuje kolejność iteracji, , czyli kolejność, w jakiej elementy zostały wstawione do zestawu (kolejność wstawiania).

Powiązane problemy