![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Как осуществить субж?
Например
Что мне нужно: Возможность выдернуть юзера по ИД и по Сессии, будут какие предложения? А то я уже совсем запутался... |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Используй MultiKey из Jakarta Commons Collections.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Гм, а сделать свой Key объект, который состоит из инта и стринга?
Определив hashcode, equals() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
И по сессии И по айдишнику - тогда можно просто сделать свой объектик, как и сказал chief39, а вот если ИЛИ по сессии ИЛИ по айдишнику, тогда не знаю, видимо, ка сказал LSD ... Тоже гляну на это мультикей
ПыСЫ в любом случае кто мешает при добавлении пихать в два хэшмапа, а при поиске пользоваться нужным Это сообщение отредактировал(а) y3u - 12.2.2007, 17:16 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
y3u,
Нужно ИЛИ по сессии, ИЛИ по айди. Multikey не подходит, т.к там сразу по обоим критериям. Насчет двух хешмапов думал, но подумал, что есть более правильное решение. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Так И или ИЛИ? Если ИЛИ, то можно и одной HashMap обойтись.
Но будет геморой с удалением значений. Например мы хотим удалить запись по ID, но нужно также будет найти его сессию, чтобы удалить и ее. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
а вот и нельзя Это сообщение отредактировал(а) y3u - 13.2.2007, 13:20 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
И какое это имеет отношение, к тому что я сказал? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
прямое
скажем, в 1.4 SDK посмотри как работает get(Object key) у HashMap... у тебя медленный код, т.к. хеши id и value могут быть одинаковыми, а реально объекты, находящиеся по этим ключам - разные вобщем, ладно... это оффтоп Это сообщение отредактировал(а) y3u - 13.2.2007, 15:22 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вообще то, я прелагал искать value или по id, или по name И хеш код value в данном случае вообще неважен. Добавлено @ 16:04 Я знаю как работает HashMap. Совпадение хешей маловероятно, но не смертельно, в реальных задачах они все равно совпадают. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Почему они вдруг разные? И там и там указатель на один и тот же обьект. Пишешь что-то вроде:
Добавлено @ 16:06
"Медленность" зависит от соотношения размера таблицы к количеству элементов в ней. Тут Ява сама подберёт оптимальную величину. |
||||
|
|||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
да блин, я описАлся, я имел в виду, конечно, name, а не value... Я вообще только о ключх говорю и все
Это сообщение отредактировал(а) y3u - 13.2.2007, 16:23 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Не больше, чем совпадение двух разных name. Не верно. С увеличением количества пользователей наша таблица будет расширятся и уменьшать таким образом вероятность совпадений. (Размер кстати можно и изначально побольше задать) Для практически равномерного распределения размер таблицы должен быть примерно N+20% где N - количество элементов хранимых таблице. Что это за объекты - не важно Нет, но книги разных авторов за разное время спокойно стоят на одной полке. И name и id - то и другое для хэштаблицы - объекты с калькулируемым идентификатором. |
|||
|
||||
| Opik |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Написал класс, по совету chief39,
Добавляю в HashMap так:
Как мне бонально проверить на наличие сессии?
не помогает
аналогично Это сообщение отредактировал(а) Opik - 27.2.2007, 23:28 |
||||||||
|
|||||||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
При такой реализации DoubleKey - никак. Точнее, никак за счёт containsKey. Простой перебор множества ключей сработает, но это простой перебор. В качестве заплатки сработает, если будешь пихать в мапу "пустышку" именно для возможности поиска по сессии:
Искать тогда так:
null вместо идентификатора пихать нельзя, т.к. будет падать на NullPointer. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |