Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как вытащить первый элемент из LinkedHashMap


Автор: freshAngel 7.12.2009, 17:03
Привет.
Есть LinkedHashMap()
Код

LinkedHashMap myMap = new LinkedHashMap();
myMap.put("123","321");
myMap.put("456","654");
myMap.put("789","987");


Как вытащить первое значение независимо от ключа!?

Мне нужно сделать функцию, что - бы значения LinkedHashMap() были такими:
Код

String s = "";
s = "321|654|987";


Сейчас у меня ArrayList(), для него функция есть и работает, а вот как с LinkedHashMap() непонятно.
 smile 

Автор: goodday1941 7.12.2009, 18:53
никак, кроме как в цикл запустить и после первого єлемента брейк сделать

вот есть вариант с http://commons.apache.org/collections/apidocs/org/apache/commons/collections/map/LinkedMap.html

Автор: LSD 7.12.2009, 20:15
Код

    LinkedHashMap<String, String> myMap = new LinkedHashMap<String, String>();
    myMap.put("123", "321");
    myMap.put("456", "654");
    myMap.put("789", "987");
    for(Map.Entry<String, String> entry : myMap.entrySet())
    {
      System.out.println(entry.getKey() + " => " + entry.getValue());
    }

Автор: freshAngel 7.12.2009, 20:42
Код

LinkedHashMap ip = new LinkedHashMap();

ip.put("123","321");      
ip.put("456","654");      
ip.put("789","987");


Set set = ip.entrySet();
Iterator i = set.iterator();

    while(i.hasNext()) {
        Map.Entry me = (Map.Entry)i.next();
        s = s + me.getKey()+"|";
        System.out.println(me.getValue());
    }




Не понятно почему выдается три раза:

123 | 321
456 | 654
789 | 987
123 | 321
456 | 654
789 | 987
123 | 321
456 | 654
789 | 987

Мне нужен только один проход по коллекции!

Автор: LSD 7.12.2009, 20:43
Что за arr?

Автор: freshAngel 7.12.2009, 20:47
Цитата(LSD @ 7.12.2009,  20:43)
Что за arr?

Исправил на ip.
Уважаемый LSD у Вас тоже несколько проходов по коллекции.
Почему так!? А не один проход!?

Автор: LSD 7.12.2009, 20:59
Цитата(freshAngel @  7.12.2009,  20:47 Найти цитируемый пост)
Уважаемый LSD у Вас тоже несколько проходов по коллекции.
Почему так!? А не один проход!? 

У меня проход один, ошибка где-то в другом месте. Скомпилируй и запусти этот класс:
Код

import java.util.*;

public class Test
{
  public static void main(String[] args) throws Exception
  {
    LinkedHashMap<String, String> myMap = new LinkedHashMap<String, String>();
    myMap.put("123", "321");
    myMap.put("456", "654");
    myMap.put("789", "987");
    for(Map.Entry<String, String> entry : myMap.entrySet())
    {
      System.out.println(entry.getKey() + " => " + entry.getValue());
    }
  }
}

Автор: serghd 7.12.2009, 21:52
Цитата(LSD @ 7.12.2009,  20:59)
Код

import java.util.*;

public class Test
{
  public static void main(String[] args) throws Exception
  {
    LinkedHashMap<String, String> myMap = new LinkedHashMap<String, String>();
    myMap.put("123", "321");
    myMap.put("456", "654");
    myMap.put("789", "987");
    for(Map.Entry<String, String> entry : myMap.entrySet())
    {
      System.out.println(entry.getKey() + " => " + entry.getValue());
    }
  }
}

Объясните пжлст, зачем при LinkedHashMap используются <String, String> и зачем тут "for(Map.Entry<String, String> entry : myMap.entrySet())" двоеточие. Как это можно записать по-другому? Первый раз вижу такого рода запись, поэтому интересен такой метод.

Автор: freshAngel 7.12.2009, 22:27
serghd, <String, String> - это тип данных ключа и значения соответственно.
                        for(Map.Entry<String, String> entry : myMap.entrySet()) - пока есть записи входящие в набор записей entrySet делать цикл.

Автор: serghd 8.12.2009, 00:02
Цитата(freshAngel @ 7.12.2009,  22:27)
serghd, <String, String> - это тип данных ключа и значения соответственно.
                        for(Map.Entry<String, String> entry : myMap.entrySet()) - пока есть записи входящие в набор записей entrySet делать цикл.

Да, но я не спрашивал что этот код делает, это и так понятно, а имел ввиду можно ли это записать как-то по-другому? Т.е. без указания <String, String> и использования ":". 
Впрочем офтоп, да и с опытом разберусь)

Автор: LSD 8.12.2009, 14:36
Цитата(serghd @  7.12.2009,  21:52 Найти цитируемый пост)
Объясните пжлст, зачем при LinkedHashMap используются <String, String> и зачем тут "for(Map.Entry<String, String> entry : myMap.entrySet())" двоеточие. Как это можно записать по-другому? Первый раз вижу такого рода запись, поэтому интересен такой метод.

http://base.vingrad.ru/view/1414-Java-50

Автор: serghd 9.12.2009, 12:30
LSD, пасиб, то что надо! А то ж и думаю - после прочтения руководства по java2 такой код всё равно выглядел незнакомо)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)