[英]Java Map Adding Key Values
方法 :
public void itemAmountCollection() {
Map<String, List<Integer>> orderItemDetails = new LinkedHashMap<String, List<Integer>>();
ArrayList<Integer> itemsAmount = new ArrayList<Integer>();
WebElement orderItemTable = driver.findElement(By
.xpath("//*[@id='tblInfo']/tbody"));
List<WebElement> noOfItems = orderItemTable.findElements(By
.tagName("tr"));
for (int i = 1; i <= noOfItems.size(); i++) {
String itemAmount = driver.findElement(
By.xpath("//*[@id='tblInfo']/tbody/tr[" + i
+ "]/td[8]")).getText();
itemsAmount.add(Integer.parseInt(itemAmount));
orderItemDetails.put("amount", itemsAmount);
}
}
使用上述方法,我們通過“地圖收集”收集了所有項目數量,上述method is (345,7905,345)
輸出為method is (345,7905,345)
我們如何才能將所有值添加到特定鍵(金額)中
預期產量:
8595 (i.e 345+7905+345)
我並沒有真正理解您的意思,但是我很想您正在嘗試將所有值添加到List
。 去做這個:
int result = 0;
for(int i : itemsAmount)
{
result+=1;
}
System.out.println(result);//This should print 8595.
通常, Map<Key,List<Value>>
結構最終需要如下代碼:
public addValue(Key key, Value value) {
if (!map.containsKey(key)) {
map.put(key, new ArrayList<>());
}
map.get(key).add(value);
}
在您的情況下,應使用類似的代碼替換orderItemDetails.put
。
或者,您可以使用第三方庫(例如guava)中的真實Multimap。
將這些值相加就是:
map.get(key).stream().sum();
假設值為List,則將流設為IntStream。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.