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.