2015-06-26 144 views
0

這是我收到的響應來獲取鍵和值對:遍歷目錄使用Java

[{rollno=1066276530, rollvalue=1815401000238}] 

這被轉換爲List<Map<String, String>> leadIds。現在我想迭代這些leadIds以獲得密鑰&值對。我嘗試過這種方式,但是返回鍵爲「1066276530」,值爲「rollno」,而我期待鍵爲「1066276530」,值爲「1815401000238」。

這裏是我的代碼

for (Map<String, String> map : leadIds) { 
    for (Map.Entry<String, String> entry : map.entrySet()) { 
     String rollno = String.valueOf(entry.getValue()); 
     String rollvalue = String.valueOf(entry.getKey()); 
     LOG.info("[Status Search] Roll No:" +rollno 
      + " Roll value:" + rollvalue); 
    } 
} 
+3

請在這裏問問題之前,需要10分鐘,逐行查看您的代碼。你可以很容易地自己解決這個問題。 –

+0

問題不在於你閱讀地圖的哪個位置正確,而在於你在哪裏構建地圖。地圖上的每個條目都具有「id」值。將代碼的一部分發布到構建地圖的地方。 –

+0

@RoelStrolenberg你是什麼意思? – Syed

回答

3

看看你的日誌語句。你周圍的數量和ID皆已:

LOG.info("[Status Search] Application ID :"+applicationNumber+ 
    " Application Number :"+appId); 

應該是:

LOG.info("[Status Search] Application ID :"+appId+ 
    " Application Number :"+applicationNumber); 
+0

是的,你可以用代碼片段更新代碼嗎?日誌是錯誤的。但我想要的價值 – Syed

0

試試這個

for (Map<String, String> map : leadIds) { 
    for (Map.Entry<String, String> entry : map.entrySet()) { 
     String applicationNumber = String.valueOf(entry.getkey()); 
     String appVal = String.valueOf(entry.getValue()); 
     LOG.info("[Status Search] Application ID :"+applicationNumber+" Application Number :"+appVal); 
} 

}

0

其實你不需要兩個循環來實現這個,你的外環map包含鍵rollno和的值,所以從那裏得到它。

for (Map<String, String> map : leadIds) { 
    String applicationNumber = map.get("rollno"); 
    String appId = map.get("rollvalue"); 
    LOG.info("[Status Search] Application ID:"+ applicationNumber + " Application Number:" + appId); 
}