Android - Получите значение от HashMap


79

Я попытался выполнить поиск на HashMap в Android, но возникла проблема:

Рассмотрим этот пример:

HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");

теперь я хочу повторить его и получить значение каждого цвета и отобразить его в «Toast». как мне это отобразить?



3
@clamp ya, я уже видел android-sdk
Пареш Майани

1
Возможно, вам также стоит прочитать доступные методы, например keySet(), а не только описания.
Pentium10 06

@ Pentium10 Ничего не знаю о HashMap .... так что теоретически как я могу узнать .... Кстати, спасибо за помощь и поддержку
Пареш Майани

SDK содержит описания имеющихся у него методов. Перед тем, как спросить, вы должны проверить и посмотреть, какие методы можно запускать на HashMap.
Pentium10 06

Ответы:


107
Iterator myVeryOwnIterator = meMap.keySet().iterator();
while(myVeryOwnIterator.hasNext()) {
    String key=(String)myVeryOwnIterator.next();
    String value=(String)meMap.get(key);
    Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).show();
}

6
Обратите внимание, что порядок итерации не определен. Если вы хотите, чтобы был добавлен тот же порядок, в котором были добавлены наборы, используйте LinkedHashMap
Key

приведенный выше код повторяется только для «key» .. но не для «Value» .. например, он отображает только «color1», «color2» ... и т. д. вместо «красный», «синий» и т. д.
Пареш Майани

Просто сделайте запрос в hashmap для ключа, и он у вас будет, я обновил свой код.
Pentium10 06

как добавить LinkedHashMap для возврата в том же порядке, помогите пожалуйста.
Jorny 05

85

Вот простой пример, демонстрирующий Mapиспользование:

Map<String, String> map = new HashMap<String, String>();
map.put("Color1","Red");
map.put("Color2","Blue");
map.put("Color3","Green");
map.put("Color4","White");

System.out.println(map);
// {Color4=White, Color3=Green, Color1=Red, Color2=Blue}        

System.out.println(map.get("Color2")); // Blue

System.out.println(map.keySet());
// [Color4, Color3, Color1, Color2]

for (Map.Entry<String,String> entry : map.entrySet()) {
    System.out.printf("%s -> %s%n", entry.getKey(), entry.getValue());
}
// Color4 -> White
// Color3 -> Green
// Color1 -> Red
// Color2 -> Blue

Обратите внимание, что записи повторяются в произвольном порядке. Если вам нужен конкретный заказ, вы можете рассмотреть, например,LinkedHashMap

Смотрите также

Связанные вопросы

При повторении записей:

По разным Mapхарактеристикам:


На enum

Возможно, вы захотите использовать enumи EnumMapвместо Map<String,String>.

Смотрите также

Связанные вопросы


import java.util. *; необходимо добавить
Durai Amuthan.H 04

Если вам нужны только значения, этот ответ явно более понятен
Э.Акио

7

Это без предупреждений!

    HashMap<String, String> meMap=new HashMap<String, String>();
    meMap.put("Color1","Red");
    meMap.put("Color2","Blue");
    meMap.put("Color3","Green");
    meMap.put("Color4","White");

    for (Object o : meMap.keySet()) {
        Toast.makeText(getBaseContext(), meMap.get(o.toString()),
                Toast.LENGTH_SHORT).show();
    }

5
HashMap<String, String> meMap = new HashMap<String, String>();
meMap.put("Color1", "Red");
meMap.put("Color2", "Blue");
meMap.put("Color3", "Green");
meMap.put("Color4", "White");

Iterator myVeryOwnIterator = meMap.values().iterator();
while(myVeryOwnIterator.hasNext()) {
    Toast.makeText(getBaseContext(), myVeryOwnIterator.next(), Toast.LENGTH_SHORT).show();
}


2
HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");
Iterator iterator = meMap.keySet().iterator();
while( iterator. hasNext() ){
    Toast.makeText(getBaseContext(), meMap.get(iterator.next().toString()), 
    Toast.LENGTH_SHORT).show();
}

2

эта работа для меня:

HashMap<String, String> meMap=new HashMap<String, String>();
meMap.put("Color1","Red");
meMap.put("Color2","Blue");
meMap.put("Color3","Green");
meMap.put("Color4","White");

Iterator iterator = meMap.keySet().iterator();
while( iterator. hasNext() )
{
    Toast.makeText(getBaseContext(), meMap.get(iterator.next().toString()), 
    Toast.LENGTH_SHORT).show();
}

1
 Iterator iterator = meMap.keySet().iterator();
                while(iterator.hasNext() ){
                  //get key
                    String key=(String)iterator.next();
                    //toast value
                                           Toast.makeText(getBaseContext(),""+(String)meMap.get(key),Toast.LENGTH_SHORT).show();

                }

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.