Android - Nhận giá trị từ HashMap


79

Tôi đã cố gắng tìm kiếm trên HashMap trong Android, nhưng gặp sự cố:

Hãy xem xét ví dụ này:

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

bây giờ tôi muốn lặp lại nó và lấy giá trị của từng màu và muốn hiển thị trong "Bánh mì nướng". làm thế nào để hiển thị nó?



3
@clamp ya Tôi đã thấy android-sdk
Paresh Mayani

1
Có lẽ bạn cũng nên đọc các phương pháp có sẵn như keySet(), không chỉ các mô tả.
Pentium 10

@ Pentium10 Tôi không biết gì về HashMap .... vì vậy theo lý thuyết làm sao tôi có thể biết được .... btw thanx để được giúp đỡ và hỗ trợ
Paresh Mayani

SDK chứa các mô tả về các phương thức mà nó có, bạn nên kiểm tra và xem loại phương thức nào có thể chạy trên HashMap trước khi hỏi.
Pentium 10

Câu trả lời:


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
Lưu ý rằng thứ tự lặp lại là không xác định. Nếu bạn muốn thứ tự giống như các bộ đã được thêm vào, hãy sử dụng LinkedHashMap
Key

đoạn mã trên chỉ được lặp lại trên "key" .. nhưng không phải đối với "Value" .. chẳng hạn như nó chỉ hiển thị "color1", "color2" ... vv. thay vì "đỏ", "xanh lam", v.v.
Paresh Mayani

Chỉ cần thực hiện yêu cầu hashmap cho khóa và bạn sẽ có nó, tôi đã cập nhật mã của mình.
Pentium 10

Làm thế nào để thêm LinkedHashMap để trở lại theo thứ tự, vui lòng giúp đỡ.
Jorny

85

Đây là một ví dụ đơn giản để chứng minh Mapcách sử dụng:

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

Lưu ý rằng các mục nhập được lặp lại theo thứ tự tùy ý. Nếu bạn cần một đơn đặt hàng cụ thể, thì bạn có thể xem xét ví dụ:LinkedHashMap

Xem thêm

Câu hỏi liên quan

Khi lặp lại các mục:

Về các Mapđặc điểm khác nhau :


Trên enum

Bạn có thể muốn xem xét sử dụng một enumEnumMapthay vì Map<String,String>.

Xem thêm

Câu hỏi liên quan


nhập java.util. *; phải được thêm vào
Durai Amuthan.H

Nếu bạn chỉ muốn các giá trị, câu trả lời này rõ ràng là dễ hiểu hơn
E.Akio

7

Điều này không có cảnh báo!

    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

công việc này đối với tôi:

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
for (Object key : meMap.keySet()) {
        String value=(String)meMap.get(key);
        Toast.makeText(ctx, "Key: "+key+" Value: "+value, Toast.LENGTH_LONG).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();

                }

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.