3
ArrayList<HashMap<String, Object>> list = ArrayList<HashMap<String, Object>>()

ハッシュマップを含む配列リストがあり、リストの位置を取得できますand。リスト内のオブジェクトのキー値を取得するにはどうすればよいですか。

@Override
public View getDropDownView() {        
    System.out.println(data.get(position)); // i am getting my List Objects 
}

//以下はの出力ですdata.get(position)

 {"title":"hello"}, => 0 
 {"title":"hello1"}, => 1
 {"title":"hello2"}, => 2
 {"title":"hello3"}, => 3
4

5 に答える 5

3

これを試してみてください:

List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();

    for (Map element : list) {
        Set<Map.Entry<String, Object>> entrySet = element.entrySet();
        for (Map.Entry<String, Object> mapEntry : entrySet) {
            System.out.println("Key is : " + mapEntry.getKey());
            System.out.println("Value is : " + mapEntry.getValue());
        }
    }
于 2013-03-26T09:49:02.460 に答える
2

完全な例でこれを試してください:

ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> map1 = new HashMap<String, Object>();
HashMap<String, Object> map2 = new HashMap<String, Object>();
map1.put("title", "hello");
map2.put("title2", "hello2");
list.add(map2);
list.add(map1);

HashMap<String, Object> innerMap;

         for(int i=0;i<list.size();i++)
         {
              innerMap = list.get(i);           

             for (Map.Entry<String, Object> entry : innerMap.entrySet())
             {
                 System.out.println(entry.getKey() + "/" + entry.getValue());
             }
         }
于 2013-03-26T09:43:56.253 に答える
2

上記のコードに少し変更を加えました。以下のコードスニペットを見つけてください。

public class Test01 {
public static void main(String[] args) {
    ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
    HashMap<String, Object> map=new HashMap<String, Object>();
    map.put("test_key", "test_value");
    data.add(map);
    HashMap hashMap = data.get(0);
    Iterator<Object> iterator=hashMap.entrySet().iterator();
    while(iterator.hasNext()){
        Map.Entry<String, Object> entry=(Entry<String, Object>) iterator.next();
        System.out.println("Key :"+entry.getKey()+" Value : "+entry.getValue());
    }

}

}

これがお役に立てば幸いです...

于 2013-03-26T09:56:56.683 に答える
1

あなたの質問にはまだまだ多くの要望がありますが、これがあなたが探しているものだと思います

public class HashMapClass {

    public static void main(String[] args){

        ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();

        //Get the Hasmap at position
        HashMap map = data.get(position);

        //Get the data in a the hashmap
        Object obj = map.get(key);
    }
}
于 2013-03-26T09:40:58.223 に答える
1

Map.Entryを使用できます

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class Y {

    public static void main(String[] args) {
        // Your data structure...
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        //Add some dummy data
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("1", "A");
        map.put("2", "B");
        map.put("3", "C");

        //Add the Map to the List
        list.add(map);

        int positionInList = 0; //Manipulate this how you want

        //Use Map.Entry to access both key and value
        for (Entry<String, Object> entry : list.get(positionInList).entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
        }
    }
}
于 2013-03-26T09:46:37.143 に答える