应在产品地图中使用密钥5020更新条目,将购买次数增加2.
我不确定如何使用ProductID.put对我拥有的Sales.txt文件的条目进行必要的更改。文件的内容显示完美但我不知道如何使用更改来更新文件。
我想我需要在某些时候使用迭代器。但我不熟悉HashMap。
public class StoreSales {
public static void main(String[] args) {
List<Customer> customer = new ArrayList<>();
try {
readFile("Sales.txt", customer);
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(customer);
}
public static void readFile(String file, List<Customer> cust) throws IOException, ClassNotFoundException {
Map<Integer, Customer> CustomerID = new HashMap<>();
Map<Integer, Customer> ProductID = new HashMap<>();
try (BufferedReader in = new BufferedReader(new FileReader(file))) {
String line;
while ((line = in.readLine()) != null) {
String[] arr = line.split(" ");
cust.add(new Customer(Integer.parseInt(arr[0]), arr[1], arr[2], Integer.parseInt(arr[3]), arr[4], Double.parseDouble(arr[5]), Integer.parseInt(arr[6])));
if (CustomerID.containsKey(Integer.parseInt(arr[0]))) {
CustomerID.get(arr[0]).getSingleItemPrice();
}
if (ProductID.containsKey(Integer.parseInt(arr[3]))) {
ProductID.get(arr[3]).getItemsPurchased();
**this is the problem** //ProductID.put(, 2++);
}
}
}
}
}
答案 0 :(得分:0)
从地图中获取对象将为您提供对可以操作的对象的引用。
Customer c = ProductID.get(arr[3]);
c.setItemsPurchased(c.getItemsPurchased() + 2);
但是就像Nishit在评论中指出的那样,if语句总是错误的,因为你从未在地图中添加任何内容。