[英]retrieving certain values from ArrayList<HashMap<String, String>>
[英]Retrieving values from hashmap and adding them to a string
我基本上是在嘗試使hashmap
的所有值組成一個字符串。
例如, String finalOutcome = "forename=Bob&surname=Marl"
,哈希圖將為:
Hashmap<String, String> maps = new Hashmap<String, String>();
maps.put("forename", forename);
maps.put("surname", surname);
當我嘗試在哈希圖中添加值以獲取finalOutcome
時,我的應用程序/程序始終崩潰。 這是我的代碼,該怎么做,以使&
符號不會出現在哈希圖中的最后一個值之后? 我將此哈希圖傳遞給另一個類中的另一個方法,如下所示:
public addMapValues(Hashmap<String, String> maps){
for(int i=0; i<maps.size(); i++){
finalOutcome += maps.get(i) + "&";
}
}
只是那一點讓我非常頭疼,我敢肯定,這里有人可以立即解決此問題(是的,我對Java不太滿意)
非常感謝您的幫助
StringBuilder
在循環中連接字符串。 Map.entrySet()
。 番石榴的例子:
HashMap<String, String> map = new HashMap<String, String>();
String result = Joiner.on('&').withKeyValueSeparator("=").join(map);
循環示例:
HashMap<String, String> map = new HashMap<String, String>();
StringBuilder sb = new StringBuilder();
for (Entry<String, String> entry : map.entrySet()) {
sb.append('&').append(entry.getKey()).append('=').append(entry.getValue());
}
String result = sb.length() > 0 ? sb.substring(1) : "";
Java 8流示例(基於由於某些原因而刪除的另一個答案):
HashMap<String, String> map = new HashMap<String, String>();
String result = map.entrySet().stream()
.map(e -> e.getKey() + "=" + e.getValue())
.collect(Collectors.joining("&"));
考慮使用StringBuilder
對象
StringBuilder finalOutcome = new StringBuilder ();
for (String name: maps.values()) {
finalOutcome.append (name).append("&");
}
return finalOutcome.toString ();
考慮使用https://docs.oracle.com/javase/7/docs/api/java/util/Map.html#values()從地圖中獲取數據
另外,請注意,如果要循環(即forename
,則使用相同的key
,因此,如果要添加新人員,則他們將替換地圖中的現有人員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.