[英]How can I extract ArrayList from HashMap and loop through it in Java?
[英]How to extract list of arraylist of hashmap and loop through it in android?
我有如下列表的hashmap arraylist。 如果能匹配顯示其各自的值,請您幫我了解如何遍歷它以獲取密鑰並將密鑰與特定數據進行比較。
List<ArrayList<HashMap>> li = new ArrayList<ArrayList<HashMap>>();
li = SyncSettings.labelSharedInstance;
以下是哈希圖存儲視圖的arraylist列表(作為參考,我也添加了xml)。
<labels>
<label id="lblMS">
<text language="EN" value="Morning Sync"/>
<text language="DE" value="Morgan Sync"/>
</label>
<label id="lblES">
<text language="EN" value="Evening Sync"/>
<text language="DE" value="Sync Abend"/>
</label>
<label id="lblAS">
<text language="EN" value="Afternoon Sync"/>
<text language="DE" value="Sync Afternoon"/>
</label>
</labels>
最初,我將獲取設備語言,並且需要使用哈希圖中的語言檢查設備語言。 如果匹配,我需要顯示相應的語言。
到目前為止,我所取得的成就如下。
for (ArrayList<HashMap> entry : li) {
Set<String> keys = entry.keySet();
for (String key : keys) {
//I'm just seeing whether i'm doing in a right way or not. So i was just printing.But i was getting nothing
System.out.println("key = " + key);
System.out.println("value = " + value);
}
您能幫我進一步嗎? 謝謝。
ArrayList<HashMap<String, String>> arrayList;
ArrayList<String> lblMSList, lblASList, lblESList;
arrayList = new ArrayList<HashMap<String, String>>();
lblMSList= new ArrayList<String>();
lblASList= new ArrayList<String>();
lblESList= new ArrayList<String>();
arrayList = getAllData();
if (arrayList.size() != 0)
{
for (int i = 0; i < arrayList.size(); i++)
{
lblMSList.add(arrayList.get(i).get("lblMS"));
lblASList.add(arrayList.get(i).get("lblES"));
lblESList.add(arrayList.get(i).get("lblAS"));
}
}
希望能幫助到你。
假設提供了xml,則可以創建以下數據結構:
List<ArrayList<HashMap<String, String>>> listSuper = new ArrayList<>();//List of label in your xml
ArrayList<HashMap<String, String>> listInner = new ArrayList<>();//Correspond to a label in your xml
HashMap<String, String> hashMapLblMs = new HashMap<>();
hashMapLblMs.put("EN", "Morning Sync");
hashMapLblMs.put("DE", "Morgan Sync");
listInner.add(hashMapLblMs);
HashMap<String, String> hashMaplblES = new HashMap<>();
hashMaplblES.put("EN", "Evening Sync");
hashMaplblES.put("DE", "Sync Abend");
listInner.add(hashMaplblES);
listSuper.add(listInner);
現在,我們可以使用for循環對此進行迭代:
for (int i = 0; i < listSuper.size(); i++) {
ArrayList<HashMap<String, String>> listInner1 = listSuper.get(i);
for (HashMap<String, String> map : listInner1) {
for (Map.Entry<String, String> entrySet : map.entrySet()) {
System.out.println("key = " + entrySet.getKey());
System.out.println("value = " + entrySet.getValue());
}
}
}
ArrayList<ArrayList<HashMap<String, String>>> li = new ArrayList<>();
for (ArrayList<HashMap<String, String>> myList : li) {
for (HashMap<String, String> myMap : myList) {
for (String key : myMap.keySet()) {
Log.e("key: ", "is " + key);
Log.e("value: ", "is " + myMap.get(key));
}
}
}
請這樣嘗試!
檢查以下代碼:
List<ArrayList<HashMap<String, String>>> li = new ArrayList<ArrayList<HashMap<String, String>>>();
//Outer loop to get arraylist of list
for(int i = 0; i < li.size(); i++){
ArrayList<HashMap<String, String>> temp_list=li.get(i);
//inner loop to get hashMap for each entry inside arraylist
for (Entry<String, String> mapEntry : temp_list.get(i).entrySet()) {
String key = mapEntry.getKey();
String value = mapEntry.getValue();
// Log.d("LIST:", "" + key + "::" + value);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.