ArrayList <HashMap <String,String >>键迭代/输出到数组

bru*_*rux 0 java android types

如果我有一个类型

ArrayList<HashMap<String,String>> keys = functionWhichReturnsThisType();
Run Code Online (Sandbox Code Playgroud)

我如何迭代,以便最终得到字符串数组中的所有<1st string of hashmap>,同样<hashmap>的第二个字符串>到另一个字符串数组中.

我曾尝试使用迭代器,但数据类型中的层次结构令我困惑.

 appPrefs = new AppPreferences(context.getApplicationContext());
      ArrayList<HashMap<String,String>> keys = appPrefs.getDownloadUrls();
      ArrayList<String> urls = new ArrayList<String>();
      ArrayList<String> filenames = new ArrayList<String>();
      Iterator myIterator = keys.keySet().iterator();
      while(myIterator.hasNext()) {
          urls.add((String)myIterator.next());
          filenames.add((String)keys.get(myIterator.next()));
      }
Run Code Online (Sandbox Code Playgroud)

Qia*_*Jin 5

如果订单无关紧要,您可以尝试

for (HashMap<String, String> map : keys) {
    urls.addAll(map.keys());
    filenames.addAll(map.values());
}
Run Code Online (Sandbox Code Playgroud)

如果您想保留订单,可以试试

for (HashMap<String, String> map : keys) {
    for (Map.Entry<String, String> entry : map.entrySet()) {
        urls.add(entry.getKey());
        filenames.add(entry.getValue());
    }
}
Run Code Online (Sandbox Code Playgroud)