Так что мне было интересно, как и если это возможно, используя Hashmaps, один из которых содержит только строки, а другой содержит аналогичный строковый ключ, но значение с плавающей запятой, чтобы сравнить их, а затем из этого сравнения вывести количество аналогичных значений впервый hashmap, а затем число с плавающей точкой из второго hashmap, добавленное вместе, когда их ключи / значения совпадают.Пример ниже, который должен прояснить, что я имею в виду и сделать это динамически.
КОД
HashMap<String, String> hmap = new HashMap<>();
HashMap<String, Float> h2map = new HashMap<>();
hmap.put("order1", "pending");
hmap.put("order2", "cancelled");
hmap.put("order3", "pending");
h2map.put("order1", (float) 19.95);
h2map.put("order2", (float) 19.95);
h2map.put("order3", (float) 39.9);
Set <String> singles = new HashSet<>(h2map.values());
if(h2map.keySet().equals(hmap.keySet())) {
// below prints out the states and amount of the states but how can i get the float values from hmap to be added together for the similar states and printed with their respective state?
for(String element : singles) {
System.out.println(element + ": " + Collections.frequency(hmap.values(), element));
}
}
Токовый выход
pending: 2
cancelled: 1
Желаемый выход
pending: 2 $59.85
cancelled 1 $19.95