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();
}
Pentium10
источник
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();
}
Нишант Шах
источник
3
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).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();

                }
Сайед Даниш Хайдер
источник
1

Примечание: если вы знаете ключ, используйте этот код

String value=meMap.get(key);
Шетти Суреш Бабу.
источник