我正在制作洗衣店应用程序。用户选择这样的项目。
我有三个TabBar(干洗,洗涤,洗涤和熨烫)。
我将用户选择的商品商店存储在三个不同的HashMap<String, ArrayList<Integer>>
我的值存储在这样的hashmap中。
Key:Name, Value:[Quantity, Default-Price, Qty-Total, position]
Key: Trouser, Value: [2, 8, 16, 3]
Key: Shirt, Value: [3, 15, 45, 0]
Key: Coat, Value: [2, 7, 14, 2]
Key: Pants, Value: [3, 10, 30, 1]
我想在三个不同的HashMap中加入所有第三个元素(16,45,14,30)。 总计所有项目。
答案 0 :(得分:3)
在此处查找完整代码。
Java class naming conventions
答案 1 :(得分:2)
如果map
是你的HashMap<String, ArrayList<Integer>>
,那么迭代地图并从ArrayList
获取第三个值并求它。试试这个,
HashMap<String, ArrayList<Integer>> map = new HashMap<>();
int sum = 0;
for (Map.Entry<String, ArrayList<Integer>> item : map.entrySet()) {
sum += item.getValue().get(2);
}
答案 2 :(得分:0)
Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>();
// create list one and store values
List<Integer> valSetOne = new ArrayList<Integer>();
valSetOne.add(5);
valSetOne.add(8);
// create list two and store values
List<Integer> valSetTwo = new ArrayList<Integer>();
valSetTwo.add(11;
valSetTwo.add(15);
// create list three and store values
List<Integer> valSetThree = new ArrayList<Integer>();
valSetThree.add(6);
valSetThree.add(55);
// put values into map
map.put(1, valSetOne);
map.put(2, valSetTwo);
map.put(3, valSetThree);
// iterate and display values
System.out.println("Fetching Keys and corresponding [Multiple] Values n");
for (Map.Entry<Integer, List<Integer>> entry : map.entrySet()) {
Integer key = entry.getKey();
List<Integer> values = entry.getValue();
System.out.println("Key = " + key);
System.out.println("Values = " + values + "n");
}
答案 3 :(得分:0)
总结数组的第三个索引然后将其存储在变量中是多么困难。
假设这是你的hashMap
HashMap<String, ArrayList<Integer>> clothes = new HashMap<>(String,ArrayList<Integer>);
带有这些值..
Key: Trouser, Value: [2, 8, 16, 3]
Key: Shirt, Value: [3, 15, 45, 0]
Key: Coat, Value: [2, 7, 14, 2]
Key: Pants, Value: [3, 10, 30, 1]
int grandTol = 0;
for (Map.Entry<String, List<Integer>> cloth : clothes.entrySet()) {
grandTol += entry.getValue().get(2);
}
只需循环遍历hashMap并添加值。
答案 4 :(得分:0)
试试这个。
int sum = map.values().stream().mapToInt(v -> v.get(2)).sum();