![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| dkirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.12.2007 Репутация: нет Всего: нет |
Извиняюсь за простейший вопрос, пониманию что обычно о таких вещах осведомляются в справочниках,
но так как изучение java я только начал куда обратиться за подсказкой не знаю, так что все же вопрос: как найти имя объекта по заданному значению его атрибута. Заодно если несложно может подскажете какой-нибудь справочник толковый. Спасибо. |
|||
|
||||
| Vurn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 24.5.2007 Репутация: 2 Всего: 3 |
(Голосом Волка) Шо??
|
|||
|
||||
| Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
||||
|
||||
| dkirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.12.2007 Репутация: нет Всего: нет |
у меня есть несколько инициализированных объектов, как мне вытащить тот объект(узнать его имя), один из атрибутов которого я знаю?
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Какая-то терминология у вас необычная. Непонятно, что вы спрашиваете. У обьектов нет имен. Имя есть у класса. И есть ссылка (референс) на обьект. При создании обьекта ссылку на обьект можно сохранить и по этой ссылке обьект можно "вытаскивать". PS Вам учебник надо почитать. Не справочник. Это сообщение отредактировал(а) COVD - 29.11.2008, 16:21 |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
правильно я понимаю задачу:
у вас инициализированы несколько переменных а1, а2, а3. каждая переменная является экземпляром одного класса. например Фио. Вам надо найти ту из переменных у которой аI.name="Name" ? |
|||
|
||||
| dkirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.12.2007 Репутация: нет Всего: нет |
да, Вы поняли меня правильно.
В принципе выход то я нашел, но больно он карявый, при инициализации каждого нового объекта я его записываю в статический массив этого же класса, а потом уже по нему ищу ссылку на необходимый объект по известному мне атрибуту, но не нравится мне это решение, хотелось бы все-таки узнать как это по-человечески сделать можно. |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
действительно карявый и не правильный подход.
есть несколько альтернативных решений, которые можно тебе предложить, но подойдут они тебе или нет не известно , так то опиши конкретней задачу , которая стоит перед тобой. для чего тебе ссылку на объект получать по атрибуту? такой ключевой атрибут единственный или их множество? |
|||
|
||||
| dkirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.12.2007 Репутация: нет Всего: нет |
Ну вот к примеру.
В общем, как я уже писал раньше, из ситуации я вышел следующим образом, в класс Игрок я ввел статический массив обьектов Игрок и при инициализации Игрока, я записываю ссылку на этот же объект в статический массив, после чего, записывая игрока в комманду, я произвожу поиск в этом статическом массиве по заданном имени игрока, в последствии записывая его в массив Игроков данной Комманды. Но как по-мне решение совсем корявое, было бы намного удобнее как-то получить массив инициализированный объектов класса Игрок и потом уже в нем производить поиск по заданному аттрибуту, можно ли это как-либо сделать? Какие еще есть альтернативные решения? Если есть еще какие-либо замечания по коду, охотно выслушаю и приму к сведению.
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
попробуй воспользоватся HashMap вместо обычного масcива, c ключём name. будет что то вроде:
|
|||
|
||||
| AxNe0 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: 4 Всего: 5 |
ну, во-первых, мне кажется, что этот код даже не скомпилируется...
Во-вторых, такое сравнение неправильно
ибо "==" сравнивает переменные по значению (а для ВСЕХ объектов значение - ссылка на объект, и true в таком случае вернется только если используется на один и тот же объект). Кроме того, получается сравнение теплого с мягким (массив игроков со строкой). Если надо доставать игрока всегда только по имени, то удобно использовать Map<String, SoccerPlayer> и его реализацию (HashMap/Hashtable). В этом случае достается игрок получается таким образом:
|
||||||
|
|||||||
| dkirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.12.2007 Репутация: нет Всего: нет |
Да-да насчет сравнения и видимости понятно вполне, я просто примерчик по-быстренькому набросал что бы просто суть вопроса ясна была, я и сам не компилировал, большое спасибо за ответы, буду изучать, собственно то, что вы написали меня и интересовало.
спасибо |
|||
|
||||
![]()
|
| Правила форума "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. |