![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| GrayVulf |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Скажите, можно ли получить доступ к объекту находящемуся в HashSet, для изменения его переменных
Это объект,
в цикле требуется инкрементировать его поле i Это код в котором происходит изменение
Или это, принципиально, невозможно? |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А где HashSet то? А вообще HashSet.get() возвращает именно ссылку на объект и дальше ты можешь с ним делать все что хочешь, в том числи и инкрементировать поле (если доступ есть).
-------------------- 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. |
|||
|
||||
| GrayVulf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
В этом-то и весь вопрос, что у HashSet не определен метод get(), отсутствует.
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я неправильно понял вопрос. В твоем случае надо использовать HashMap<Integer, CounterForSet>, тогда все будет просто и логично.
-------------------- 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. |
|||
|
||||
| GrayVulf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Да, в данном случае с HashMap все гораздо проще и логичней. Но хочется выяснить возможен ли доступ к объекту в HashSet или нет. Казалось бы при наличии метода HashSet.contains(Object), который определяет наличие объекта, так же легко можно было и получить к нему доступ.
Единственное, как у меня получилось получить доступ к объекту это использовать Iterator, то есть методом перебора. Нерационально и геморройно
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ну тут как бы идея в том, что если у тебя уже есть объект (тот который ты передаешь в метод contains()), то что тебе еще надо? Объект-то equals() тому объекту который храниться в HashSet. -------------------- 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. |
|||
|
||||
| GrayVulf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Да, объект equals(), но при инкрементировании поля этого объекта, объект который в HashSet не меняется. Это же разные объекты, и equals() они по другим полям.
По идее, тогда должен быть правилен этот код. Но он не работает, объекты в контейнере не изменяются. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
deleted
Это сообщение отредактировал(а) COVD - 4.2.2010, 19:41 |
|||
|
||||
| GrayVulf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Это что значит? Обсуждение закончено?
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Нет, я удалил свою ошибку
Обьект в Set хранится по ключу, который автоматически вычисляется, т.е. это очевидно hashCode. Этим Set и удобнее в некоторых ситуациях, чем HashMap, где ключ надо определять явно. Set удобен для создания коллекции уникальных обьектов. Именно коллекции, поэтому там нет метода get. |
|||
|
||||
| GrayVulf |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Теперь все ясно. Спасибо
Добавлено через 2 минуты и 34 секунды |
|||
|
||||
![]()
|
| Правила форума "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. |