powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Иерархическая структура. Опять.
7 сообщений из 7, страница 1 из 1
Иерархическая структура. Опять.
    #38324817
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер.

В Оракле есть потрясающая возможность работать с иерархическими структурами.

На таблице вида id,parent_id и индексов по ним в обе строны.

Запросы летают пулей. что для получения всех потомков, что для получения всех родительских записей. Достаточно поставить два индекса id+parent и parent+id.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * 
from table 
start with id = ...
connect by prior id = parent

либо

connect by prior parent = id



Все просто красиво и быстро работает. С любой вложенностью потомков.

Как такое же реализовать через коллекции джава Map(key,value)?

Данных много.

Простая конструкция вида Map(id, parent_id )
может работать быстро только при получении родителей. Ибо запрос пойдет по ключу Map.

А вот если задаться целью найти всех потомков, то придется идти перебором по всем parent и сравнивать с id.


Неужели придется держать две коллекции фактически имитируя индексы как в оракле?
Или есть решение похитрее?
Или я вообще не ту структуру как основную рассматриваю?
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325095
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще в Java есть какой нибудь набор библиотек реализующий индексный доступ к данным?

Судя по стандартному набору Map/Set/List - там этого нет.

Самое близкое Map но и там если смотреть глазами разработчика БД есть только ПК в виде поля key.

Неужели ничего подобного не создавалось никогда? Ведь самый обычный индекс позволяет сократить количество шагов при поиске элемента коллекции во много раз.
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325108
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кореец,

А что-нибудь тиап такого не потянет?

Код: java
1.
2.
3.
4.
5.
6.
7.
// для поисков
Map<id, MyHierarchicalObj> 

// и класс иерархии
class MyHierarchicalObj
private MyObj parent
private Collection<MyObj> child
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325118
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,

сорри, поспешил. наверно так:
Код: java
1.
2.
3.
4.
// и класс иерархии
class MyHierarchicalObj
private MyObj parent
private Collection<MyHierarchicalObj> child
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325123
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кореец,

Зачем вы привязываетесь к Java коллекциям? Определитесь какая-именно структура данных вам нужна. А затем уже ищите реализацию на Java.
http://ru.wikipedia.org/wiki/Дерево_(структура_данных)
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325137
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кореец,

Чтобы совсем уж по науке )
...
Рейтинг: 0 / 0
Иерархическая структура. Опять.
    #38325514
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КореецНеужели придется держать две коллекции фактически имитируя индексы как в оракле?
Или есть решение похитрее?


Сами же говорите - в Оракле все быстро и красиво, так почему бы не сымитировать? Или лень? Ну так гуглите java embedded key-value in-memory indexed database. Но ручное решение, привязанное к вашей структуре данных, всё равно будет быстрее работать.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Иерархическая структура. Опять.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]