我需要使用ProductId HashMap插入或更新txt文件的条目。我不熟悉HashMap。我必须使用HashMap,即使TreeSet也可以工作。我知道我必须使用迭代器,但我不知道如何。该文件在控制台中读取,因此没有问题。
问题: 我需要引用某个productID键(即1005)来将ItemPrice更新为$ 90。
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]).getItemsPurchased();
}
if (ProductID.containsKey(Integer.parseInt(arr[3]))) {
ProductID.get(arr[3]).getSingleItemPrice();
}
}
}
}
}
答案 0 :(得分:0)
您的问题需要更多说明
I need to insert or update an entry for a txt file using the ProductId HashMap.
如果您希望执行上述操作,那么您需要使用BufferedWriter写入文件,使用HashMap的概念很容易实际 HashMap - &gt;首先要理解这个概念,把它想象成一个银行/储物柜,以获得你需要钥匙的有价值物品/物品,hashMap的工作原理与此类似
现在,如果您只需要值
for(String str:map.values())
在你的情况下
for(Customer cust:ProductID.values())
//获取Map中所有客户价值
根据您编写的代码,我假设这是因为您没有提供整个代码,但您没有为Map分配任何值,因此您不会获得任何数据,甚至可能会得到例外
只有在需要键值和值对时才需要迭代
for (Map.Entry<Integer, Customer> entry : ProductID.entrySet())
System.out.println("Key = " + entry.getKey() + ", Customer = " + entry.getValue());
希望这有用, 快乐的编码:)
答案 1 :(得分:0)
Problem: I need to reference to a certain productID key (which is 1005) to update the ItemPrice to $90
if (ProductID.containsKey(1005)) {
ProductID.get(1005).setSingleItemPrice(90);
}
请更具体地说明下次你想要什么:)