| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > есть ли класс, параметризуемый более чем 1 ключем? |
| Автор: madeinsoviets 8.1.2011, 18:17 |
| всем привет!) Подскажите пожалуйста решение для Java.. Мне нужно иметь структуру, в которой по х, у, z располагается узел.. HashMap<Integer, HashMap<Integer, HashMap<Integer, Node>>> выглядит убого и неудобно - есть ли класс, параметризуемый более чем 1 ключем? |
| Автор: mes 8.1.2011, 18:25 |
а почему бы не объединить x,y,z в одну структуру ? и уже по ней располагать то что нужно .. |
| Автор: madeinsoviets 8.1.2011, 18:35 |
| да, такой вариант рассматривается, но придется писать код сравнения и т.п. - очень хочется найти вариант от разработчиков... |
| Автор: dorogoyIV 8.1.2011, 19:14 |
| зачем структуры? (это из С/С++ ?) пишешь свой класс... |
| Автор: dorogoyIV 8.1.2011, 20:00 | ||
в стиле Java:
|
| Автор: mes 8.1.2011, 20:00 |
затем, что слово структура была использована не как языковая конструкция, а как обобщение "любого" объединения свободных переменных.. Добавлено @ 20:12 dorogoyIV, если примитивы однотипные, не проще написать адаптер для массива ? нежели выкрусы, с переопределением сеттеров и геттеров для каждой переменной.. так еще и со сравнением париться.. и это все только для трех, а если надо к примеру 7 или даже опорных значений.. страшно подумать.. |
| Автор: mes 8.1.2011, 21:03 | ||||||
в С++ структуры умеют все то же самое, что и классы.. так что классы там ничем не лучше.. и так сразу и поверили ? все зависит от цели (модели) и языковых возможностей.. хорошее оправдание..
ну для чего геттеры и сеттеры нужны и какая от них польза я представляю.. только вот стоит ли овчинка выделки ?
угу в структуре, которая предназначена в качестве ключа.. |
| Автор: dorogoyIV 8.1.2011, 21:14 |
| я не очень хорошо знаю структуры С/С++ , а они могут наследоваться?, их можно создавать динамически с разными входящими параметрами?, от них можно создавать потомков?, ... мне кажется классы гибче в этом отношении |
| Автор: mes 8.1.2011, 21:20 | ||
struct и class в C++ фактически абсолютно одно и тоже.. отличаются лишь одной мелочью - правами доступа по умолчанию.. |
| Автор: dorogoyIV 8.1.2011, 21:43 | ||
ок тогда, раз уж мы на подфоруме Java, нужно стараться говорить на этом языке ps с уважением... |
| Автор: mes 8.1.2011, 22:16 |
полностью поддерживаю. что не стоит использовать термины другого языка.. но есть одно но Для уточнения.. для решения вопроса тс подходит одно из : 1. "классическая" структура 2. "классические" классы 3. массив (если типы одинаковы) 4. кортеж (если типы разные).. что больше подходит под нужды и как прикрутить к задаче (напрямую как класс или через адаптер,как массив) это уже второй вопрос.. Добавлено через 26 секунд p.s. с уважением... |
| Автор: priam220 8.1.2011, 23:56 | ||||||
насколько я понимаю речь идет о трехмерном массиве. Такая структура есть в любом языке:
Почитать можно http://sbp-program.ru/SBP-Array.htm#tri.
нет. Зато есть класс, где ключ может быть Объектом. |
| Автор: math64 11.1.2011, 10:09 | ||
Если заранее известны диапазоны x, y, z и если они вместе влезут в long, то можно так:
Можно добвить minX, minY, minZ если индекы могут быть отрицательны. Если не влезают в Long, можно использовать BigInteger. |