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

Поиск:

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


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


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

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



Цитата(nornad @  10.1.2008,  16:12 Найти цитируемый пост)
возьми у мапы массив Map.Entry и форичем его, форичем

ээ... а на примере не покажешь?
Цитата(nornad @  10.1.2008,  16:12 Найти цитируемый пост)
все значения по ключам

а то, что эти значения - массивы, это не помешает?


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


Эксперт
***


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

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



Если знаешь ключи, то выводи так:
Код

System.out.println(map.get(someKey));

Если не знаешь и хочешь вывести все:
Код

        Map<String, String> map = new HashMap<String, String>();
        map.put("first", "vasya");
        map.put("second", "petya");
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for(Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey() + " => " + entry.getValue());
        }



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


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


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

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



nornad, 
Цитата(nornad @  10.1.2008,  16:24 Найти цитируемый пост)
System.out.println(map.get(someKey));

вы, кажется, не поняли... у меня в одном массиве, в каждом ключе этого массива определен другой массив. То есть надо добраться:
Цитата(GZep @  10.1.2008,  15:21 Найти цитируемый пост)
myMap[число][ээ..тут например будет "name"]

я думал надо так, но не работает:
Цитата(GZep @  9.1.2008,  21:11 Найти цитируемый пост)
System.out.println(this.myMap.get(0).get("name"));




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


Эксперт
***


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

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



Верхняя мапа у тебя что хранит? Object? Тогда надо кастить.
Вот тебе ещё пример:
Код

Map<String, String> innerMap = new HashMap<String, String>();
innerMap.put("first", "vasya");
innerMap.put("second", "petya");
Map<Integer, Map<String, String>> outerMap = new HashMap<String, String>();
outerMap.put(0, innerMap);
System.out.println(outerMap.get(0).get("first");


Добавлено через 2 минуты и 50 секунд
блин, скобку закрывающую забыл smile

Это сообщение отредактировал(а) nornad - 10.1.2008, 20:29


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


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


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

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



Цитата(nornad @  10.1.2008,  20:27 Найти цитируемый пост)
Верхняя мапа у тебя что хранит?

ну, ключи - числа, а значения Map. А у этого Map ключи и значения - строки.
nornad, а почему этот пример работает, а мой нет? ответ кроется в Object<..> - это такое <>? Если честно, не знаю, что это, но из-за них работать начинает...


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


Эксперт
***


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

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



Цитата(GZep @  11.1.2008,  00:29 Найти цитируемый пост)
ответ кроется в Object<..> - это такое <>

<> - это шаблоны в Java. Появились в 1.5.
Object<..> - это ты очень прикольно у себя пишешь smile
Почитай про шаблоны, тоже оценишь.
А не работало у тебя потому, что из первой мапы ты доставал неизвестный объект, а не мапу (JVM не в курсе, какой там должен быть тип). То есть, после вытаскивания надо было приводить к мапе второго типа.


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


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


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

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



хм.... у меня не работает smile

Добавлено через 1 минуту и 17 секунд
Цитата(nornad @  10.1.2008,  21:34 Найти цитируемый пост)
То есть, после вытаскивания надо было приводить к мапе второго типа.

а чем ей не нравится тогда вот это?
Цитата(GZep @  9.1.2008,  21:11 Найти цитируемый пост)
System.out.println((java.util.Map this.myMap.get(0)).get("name"));



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


Эксперт
***


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

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



Цитата(GZep @  11.1.2008,  00:37 Найти цитируемый пост)
а чем ей не нравится тогда вот это?

Тем, что ты привёл к нешаблонизированной мапе. Приведи к Map<String, String> и будет счастье.


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


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


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

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



nornad, переделай, плиз этот пример. У меня не работает.
Код

class MyMap extends java.util.HashMap {

    private java.util.Map tmpMap;
    
    public MyMap () {
        tmpMap = new java.util.HashMap();
        tmpIntMap.put("name", "bla");
        put(0, tmpMap);
    }
   
}

class MyFrame extends javax.swing.JFrame {

    public MyFrame () {
         java.util.Map myMap = new MyMap();
         getContentPane().add(new javax.swing.JScrollPane(new MyTable(myMap)));
    }

}

class MyTable extends javax.swing.JTable {
    
    public NetIntTable (java.util.Map myMap) {
          System.out.println(myMap.get(0).get("name"));
    }
    
}



Это сообщение отредактировал(а) GZep - 10.1.2008, 22:18


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


Эксперт
***


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

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



Код

class MyMap
{
    public Map<Integer, Map<String, String>> tmpMap;

    public MyMap() {
        tmpMap = new HashMap<Integer, Map<String, String>>();
        Map<String, String> tmpIntMap = new HashMap<String, String>();
        tmpIntMap.put("name", "bla");
        tmpMap.put(0, tmpIntMap);
    }
}

class MyFrame extends javax.swing.JFrame
{
    public MyFrame() {
        MyMap myMap = new MyMap();
        getContentPane().add(new javax.swing.JScrollPane(new MyTable(myMap)));
    }
}

class MyTable extends javax.swing.JTable
{
    public MyTable( MyMap myMap ) {
        System.out.println(myMap.tmpMap.get(0).get("name"));
    }
}

В следующий раз давай нормальный пример, а не псевдокод неизвестно на чём (ибо это даже не Java - это сплошной поток сознания).


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


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


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

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



nornad, ну.... елки-палки!!!  smile никаких < > не нужно!!!
вот решение:

Цитата(GZep @  10.1.2008,  21:37 Найти цитируемый пост)
а чем ей не нравится тогда вот это?
Цитата(GZep @  9.1.2008,  21:11 Найти цитируемый пост)
System.out.println((java.util.Map this.myMap.get(0)).get("name"));

сам себе отвечаю: не нравится это тем, что написано неверно!!!
вот как надо:
Код

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

вот и все... smile }|{ECTb


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


Эксперт
***


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

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



Цитата(GZep @  11.1.2008,  02:20 Найти цитируемый пост)
nornad, ну.... елки-палки!!!   никаких < > не нужно!!!

На 1.5+ лучше с "палками" smile
Так оно куда нагляднее и меньше явных преобразований надо делать.


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


Нелетучий Мыш
****


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

Репутация: 24
Всего: 151



Цитата(nornad @  11.1.2008,  01:24 Найти цитируемый пост)
Так оно куда нагляднее и меньше явных преобразований надо делать. 

И главное - компилятор проверяет, правильные ли вещи мы в коллекцию пихаем.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
GZep
Дата 11.1.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(nornad @  11.1.2008,  00:24 Найти цитируемый пост)
явных преобразований

получается: явное преобразование VS. явное указание(определение)
Цитата(batigoal @  11.1.2008,  10:49 Найти цитируемый пост)
правильные ли вещи мы в коллекцию пихаем. 

у меня во внутренней коллекции значения есть и не String... это я так упростил для того чтобы на простом примере понять, что надо сделать чтобы заработало.
З.Ы. nornad, примите мои извинения, что из-за моих кривых рук кучу Вашего времени убил smile 


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

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

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


 




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


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

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