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");

тепер я хочу повторити його і отримати значення кожного кольору і хочу відобразити в "Тості". як це відобразити?



3
@clamp ya, я вже бачив android-sdk
Paresh Mayani

1
Можливо, вам слід також прочитати доступні методи, такі як keySet(), а не лише описи.
Pentium10,

@ Pentium10 Не знаю нічого про HashMap .... так що теоретично, як я можу дізнатися .... до речі, подяка за допомогу та підтримку
Paresh Mayani

SDK містить описи методів, які він має, вам слід перевірити та побачити, які методи можна запустити на HashMap перед запитом.
Pentium10,

Відповіді:


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

наведений вище код повторюється лише для "ключа" .., але не для "Значення" .., наприклад, він відображає лише "color1", "color2" ... тощо. замість "червоний", "синій" тощо
Пареш Маяні

Просто зробіть запит на хеш-карту ключа, і у вас він буде, я оновив свій код.
Pentium10,

як додати LinkedHashMap для повернення в тому самому порядку, допоможіть будь ласка.
Jorny

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>.

Дивитися також

Пов’язані запитання


імпортувати java.util. *; необхідно додати
Дурай Амутан. H

Якщо ви хочете лише значення, ця відповідь явно зрозуміліша
Е. Акіо,

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.