![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
madeinsoviets |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.11.2010 Репутация: нет Всего: нет |
всем привет!)
Подскажите пожалуйста решение для Java.. Мне нужно иметь структуру, в которой по х, у, z располагается узел.. HashMap<Integer, HashMap<Integer, HashMap<Integer, Node>>> выглядит убого и неудобно - есть ли класс, параметризуемый более чем 1 ключем? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
а почему бы не объединить x,y,z в одну структуру ? и уже по ней располагать то что нужно .. ![]() |
|||
|
||||
madeinsoviets |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.11.2010 Репутация: нет Всего: нет |
да, такой вариант рассматривается, но придется писать код сравнения и т.п. - очень хочется найти вариант от разработчиков...
|
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
зачем структуры? (это из С/С++ ?)
пишешь свой класс... |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
в стиле Java:
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
затем, что слово структура была использована не как языковая конструкция, а как обобщение "любого" объединения свободных переменных.. Добавлено @ 20:12 dorogoyIV, если примитивы однотипные, не проще написать адаптер для массива ? нежели выкрусы, с переопределением сеттеров и геттеров для каждой переменной.. так еще и со сравнением париться.. и это все только для трех, а если надо к примеру 7 или даже опорных значений.. страшно подумать.. Это сообщение отредактировал(а) mes - 8.1.2011, 20:13 |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
mes, извини, но меня так учили - сначала научили структурам (С/С++), а потом сказали - лучше классы!
![]()
во первых - стиль Java во вторых - все эти гэттеры и сэттеры только с первого взгляда кажутся никчемными созданиями. на самом деле они наверняка пригодятся в процессе работы программы. |
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
в С++ структуры умеют все то же самое, что и классы.. так что классы там ничем не лучше.. ![]() и так сразу и поверили ? ![]() все зависит от цели (модели) и языковых возможностей.. хорошее оправдание.. ![]()
ну для чего геттеры и сеттеры нужны и какая от них польза я представляю.. только вот стоит ли овчинка выделки ?
угу в структуре, которая предназначена в качестве ключа.. ![]() |
||||||
|
|||||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
я не очень хорошо знаю структуры С/С++ , а они могут наследоваться?, их можно создавать динамически с разными входящими параметрами?, от них можно создавать потомков?, ...
мне кажется классы гибче в этом отношении |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
struct и class в C++ фактически абсолютно одно и тоже.. отличаются лишь одной мелочью - правами доступа по умолчанию.. |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
полностью поддерживаю. что не стоит использовать термины другого языка.. но есть одно но ![]() Для уточнения.. для решения вопроса тс подходит одно из : 1. "классическая" структура 2. "классические" классы 3. массив (если типы одинаковы) 4. кортеж (если типы разные).. что больше подходит под нужды и как прикрутить к задаче (напрямую как класс или через адаптер,как массив) это уже второй вопрос.. ![]() Добавлено через 26 секунд p.s. с уважением... ![]() |
|||
|
||||
priam220 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
насколько я понимаю речь идет о трехмерном массиве. Такая структура есть в любом языке:
Почитать можно тут.
нет. Зато есть класс, где ключ может быть Объектом. ![]() Это сообщение отредактировал(а) priam220 - 9.1.2011, 00:07 |
||||||
|
|||||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Если заранее известны диапазоны x, y, z и если они вместе влезут в long, то можно так:
Можно добвить minX, minY, minZ если индекы могут быть отрицательны. Если не влезают в Long, можно использовать BigInteger. Это сообщение отредактировал(а) math64 - 11.1.2011, 10:21 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |