Potrzebny kontener sortujący z bezpośrednim dostępem do danych

0

Witam!

W Javie istnieją kontenery z bezpośrednim dostępem do danych (mam tu na myśli dostęp poprzez metodę get(int index)), chociażby ArrayList'a, natomiast nie ma ona możliwości sortowania danych. Istnieją też takie, które sortują każdy wprowadzony element na podstawie jakiegoś komparatora, np. TreeSet, ale dostęp do elementów mamy tylko poprzez iterator.

A czy jest jakiś kontener, który łączy obie te zalety? W sensie że w swojej strukturze wewnętrznej ma tablicę (jak ArrayList'a) i metoda get(int index) zwraca konkretny element tablicy (chodzi o szybki, bezpośredni dostęp do danych), a jednocześnie dodając elementy do takiego kontenera od razu sortuje dane (nawet kosztem wydajności)? Mi nie udało się takiego czegoś znaleźć, ale może wy znacie coś odpowiedniego?

Oczywiście zawsze mogę napisać własną klasę realizującą to zadanie (to nie jest żaden problem), ale być może już coś takiego istnieje, więc po co powielać kod. Więc?

1

Standardowo nie ma takiej kolekcji, ale:
http://commons.apache.org/collections/api-3.1/org/apache/commons/collections/list/TreeList.html
tego możesz wykorzystać do implementacji własnej listy o podanych własnosciach.
Zresztą google dla: java sorted list
zwraca dość sporo przykładowych wyników

0
Shalom napisał(a)

Standardowo nie ma takiej kolekcji, ale:
http://commons.apache.org/collections/api-3.1/org/apache/commons/collections/list/TreeList.html
tego możesz wykorzystać do implementacji własnej listy o podanych własnosciach.

Mówiąc szczerze, jeśli czas dostępu do elementu jest tak szybki jak piszą na stronie apacha, to ta struktura jest bardzo dobrym punktem wyjścia do stworzenia tego co chce zrobić. Co prawda nie do końca rozumiem jak ona działa od strony kodu, w sensie co sprawia że mimo struktury drzewiastej, tak szybko można dostać się do danego elementu przez get() (wymaga to bardziej szczegółowej analizy źródła), ale wierze apachowi. Ewentualnie przeprowadzę własne testy. Tak czy inaczej cały pakiet od apacha ma sporo fajnych klas, może się to przydać w kolejnych programach. Dzięki za pomysł.

Shalom napisał(a)

Zresztą google dla: java sorted list
zwraca dość sporo przykładowych wyników

A tej konkretnej frazy nie wpisywałem w google. Generalnie szukałem pod odrobinę innym sformułowaniem i tam właściwie nie było nic, prócz odniesień do TreeSet (co było mi bardzo nie na rękę).

1 użytkowników online, w tym zalogowanych: 0, gości: 1