如何从LinkedHashMap获取密钥?

时间:2014-04-29 22:23:56

标签: java android json linkedhashmap

我有一个填充listView的代码:

JSONArray data = responseData.getJSONArray("data");
String[] values = new String[data.length()];//I wanna get rid of this

LinkedHashMap<String, String> helpData = new LinkedHashMap();
for (int i = 0; i < data.length() ; i++) {
  String header = data.getJSONObject(i).getString("glossary_header");
  String description = data.getJSONObject(i).getString("gloassary_description");

  helpData.put(header, description);
    values[i] = header;
  Log.d("mylog", "counter" + i);
}

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);

我想将密钥传递给Arrayadapter,我希望找到一个getKeys()方法,可以从地图中神奇地返回一个密钥数组。

KeySet()已关闭但无法正常工作,这样做的正确方法是什么。我不想使用字符串数组。我想把我的配对价值放在一起。

3 个答案:

答案 0 :(得分:1)

你可以这样做

   Collection<String> values = helpData.keySet();

     for (String string : values) {
           //
       }

答案 1 :(得分:0)

for (final String key : helpData.keySet()) {
  // print data...
}

final Iterator<String> cursor = helpData.keySet().iterator();
while (cursor.hasNext()) {
  final String key = cursor.next();
 // Print data
}

答案 2 :(得分:0)

Set<String> keys = myArray.keySet();
String[] keysAsArray = keys.toArray(new String[0]);

有关toArray方法的更多详情,请访问http://docs.oracle.com/javase/7/docs/api/java/util/Set.html#toArray(T[])