У меня есть некоторые пункты покупок в файле, разделенные символом «|».Манипулирование карты внутри карты
Adam|grocery|veggies|100.00
John|fuel|gasoline|42.60
John|grocery|veggies|20.00
Налог с продаж составляет 8,75%.
- Найти общий доход для каждого клиента.
- Для каждого клиента укажите, сколько расходов было направлено на какую категорию.
- Показать налог с продаж для каждого из выводов.
Выход:
Total Revenue:
Adam - $100.00
John - $62.60
Tax - 14.22
Shopping by Adam:
Grocery - $100.00
Tax - $8.75
Shopping by John:
Fuel - 44.60
Grocery - 20.00
Tax - $5.47
Я прочитал файл, используя код, а затем создал HashMap
с String
в качестве ключа (чтобы сохранить имя клиента) и значение в качестве другого HashMap
(сохранить категорию (имя от категории в качестве ключа и цены в качестве значения))
package test;
import java.io.*;
import java.util.*;
public class GroceryStore {
public static void main(String[] args) {
try {
File inFile = new File("/Users/customers.txt");
Scanner scan = new Scanner(inFile);
String lines = "";
Map<String, HashMap<String, Double>> map = new HashMap<String, HashMap<String, Double>>();
while (scan.hasNextLine()) {
lines = scan.nextLine();
String[] wordSplit = lines.split("\\|");
HashMap<String, Double> category = new HashMap<String, Double>();
category.put(wordSplit[1], Double.parseDouble(wordSplit[3]));
map.put(wordSplit[0], category);
}
System.out.println("Total revenue by customer: ");
for (Map.Entry<String, HashMap<String, Double>> entry : map.entrySet()) {
System.out.println(entry.getKey() + " - " + entry.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Но это не работает так, как я думал и не мог продолжить. На последнем этапе while
цикл, когда используется map.put
. Это заменяет предыдущую запись покупки этого человека новой покупкой. Но я хочу, чтобы все записи о покупке для этого человека отслеживались. Затем мы должны иметь возможность отображать общий вывод и категоризированный вывод.
Может ли кто-нибудь помочь в этом, у вас может быть другой подход?
Это звучит как вопрос домашней работы – smang
«Это не работает» - как это не работает? что случилось? что происходит? –
Также - вам лучше разместить полный класс, так как то, что вы предоставили, имеет различные синтаксические ошибки из-за отсутствия фигурных скобок. –