Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ассоциативный массив, на Java 
:(
    Опции темы
GZep
Дата 2.1.2008, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Здравствуйте.

Существуют ли в java ассоциативные массивы? дело в том, что в голове - каша: Array, ArraList, Vector... и еще бог знает какие объекты... сегодня нашел реализацию ассоциативных массивов на java за счет удвоения количества элементов списка. Нужен ли такой дополнительный код? есть-ли стандартная реализация? чем отличаются вышеперечисленные объекты?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
dorogoyIV
Дата 2.1.2008, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



что значит 
Цитата(GZep @  2.1.2008,  03:14 Найти цитируемый пост)
ассоциативные массивы
?
если я правильно понял:
Код

Vector  <Integer> v=new Vector <Integer> ();
   // компилятор не позволит сделать так
v.add("5");
   // зато легко делается так
v.add(5);



Это сообщение отредактировал(а) dorogoyIV - 2.1.2008, 05:26
PM MAIL   Вверх
nornad
Дата 2.1.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(GZep @  2.1.2008,  06:14 Найти цитируемый пост)
Существуют ли в java ассоциативные массивы?

Да - интерфейс Map (одна из реализаций - HashMap).


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
GZep
Дата 2.1.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



На другие вопросы ответте пожалуйста тоже!


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Kangaroo
Дата 2.1.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



GZep, что вы понимаете под ассоциативным массивом?

я понимаю это как nornad, то есть:
"ассоциативный массив" - это список, в котором хранятся пары ключ-значение. По ключу можно получить определенное значение. 

Тогда:
Цитата(nornad @  2.1.2008,  08:01 Найти цитируемый пост)
интерфейс Map (одна из реализаций - HashMap). 






--------------------
Lost....
PM MAIL MSN   Вверх
Platon
Дата 2.1.2008, 22:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Map - интерфейс, который определяет ассоциативный массив, известные стандартные реализации HashMap (беспорядочное хранение данных), Hashtable (хранение данных в определенном порядке). всё.

За более точной информацией, надо обращаться к истокам
PM MAIL ICQ   Вверх
nornad
Дата 2.1.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(GZep @  2.1.2008,  06:14 Найти цитируемый пост)
в голове - каша: Array, ArraList, Vector...

Цитата(GZep @  2.1.2008,  06:14 Найти цитируемый пост)
чем отличаются вышеперечисленные объекты?

По мотивам жавадока:
1. Array - java.lang.reflect.Array, т.е. объект, с которым идёт работа, когда ты создаёшь "обычный" массив. Например:
Код

int [] intArray = new int[10];

2. ArrayList и Vector реализуют AbstractList. ArrayList не синхронизирован и могут быть проблемы при работе с одним массивом из разных потоков. Зато работает, вроде, быстрее (тут лучше пусть скажут те, кто использовал вектор).


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
XEugene
Дата 3.1.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Но самое интересное во всем этом то что Map - не коллекция!  Когда я впервые об этом узнал,  то был очень озадачен.
PM MAIL   Вверх
nornad
Дата 3.1.2008, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Ну а как, например, добавлять в мапу обычным add(E e) интерфейса Collection? Ключ сама коллекция изобретать должна? Не шибко подходит этот интерфейс к мапе, вот она и не коллекция. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
GZep
Дата 9.1.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



nornad, спасибо большое, за java.util.Map - вещь просто супер!
Только вот не получается вытащить влощенные значения...

Определяю так:
Код

class MyMap extends java.util.HashMap {
private java.util.Map tmpMap;
for(....) {
    tmpMap = new java.util.HashMap();
    tmpMap.put("name", data.getName());
    ....
    put(i, tmpMap);
}

а вот вытащить не выходит. (со структурой все норм, посмотрел через toString):
Код

System.out.println((this.myMap.get(0)).get("name");
System.out.println(this.myMap.get(0).get("name");
System.out.println((java.util.Map this.myMap.get(0)).get("name");

все генерируют исключения smile  smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
nornad
Дата 9.1.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Вообще обычно у всех работает так:
Код

tmpMap.get("name");



--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Kangaroo
Дата 9.1.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



А что ты пытаешься сделать это строкой  smile :
Код

System.out.println((this.myMap.get(0)).get("name");

Может так?:
Код

System.out.println((this.myMap.get(0)).get("name"));


А если не поможет - выложи полный код. Чтобы можно было запустить и увидеть ошибки..


--------------------
Lost....
PM MAIL MSN   Вверх
nornad
Дата 9.1.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



извините, заглючил по полной smile

Это сообщение отредактировал(а) nornad - 9.1.2008, 21:32


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
GZep
Дата 10.1.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Цитата(Kangaroo @  9.1.2008,  21:24 Найти цитируемый пост)
А если не поможет

да не, это я тут для примера написал и то неправильно...
Цитата(Kangaroo @  9.1.2008,  21:24 Найти цитируемый пост)
А если не поможет - выложи полный код

Цитата(Kangaroo @  9.1.2008,  21:24 Найти цитируемый пост)
А что ты пытаешься сделать это строкой

Цитата(nornad @  9.1.2008,  21:19 Найти цитируемый пост)
Вообще обычно у всех работает так:

вот сейчас покажу структуру:
myMap = {
    0 = {"name" = "bla-bla", "bla-bla" = "bla-bla", "..." = "...."},
    1 = {"name" = "bla-fvdsv", "bvds" = "bvds-bla", "..." = "...."},
    и т.д.
}
как мне вывести myMap[число][ээ..тут например будет "name"] ?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
nornad
Дата 10.1.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



А зачем тебе через число? Если хочешь просто вывести все значения по ключам - возьми у мапы массив Map.Entry и форичем его, форичем. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.