Я новичок в Java. Пожалуйста, помогите решить проблему ниже.
У меня есть входной файл, как упомянуто ниже, со значениями в следующем порядке, разделенными запятыми: «id, invoiceNumber, custid, totalamt, amountdue». Мне нужно выяснить, у кого есть сумма, подлежащая выплате> 1000. Если один custid повторяется несколько раз, имея dueamt> 1000, тогда мне нужно распечатать номер ожидающих платежей.
*Input file :
102,12545,111,10000,5000
103,12546,111,10300,4000
104,12545,110,10000,2000*
*Output in the console:
cust id : 111
No of pending due payment ; 2
Total due amount : 9000
cust id : 110
No of pending due payment ; 1
Total due amount : 2000*
Я нахожусь в процессе кода ниже, но не понял
public static void main(String[] args) throws FileNotFoundException, IOException
{
String line = null;
Long custid;
Double dueamt;
int count = 1;
Double newdue;
Map<Long,Map> hashmap = new TreeMap<>();
Invoice invoiceobj = null;
try(BufferedReader br1 = new BufferedReader(new FileReader("input.txt")))
{
while((line = br1.readLine()) != null)
{
invoiceobj = new Invoice();
String[] detailsarr = line.split(",");
invoiceobj.setId(Long.parseLong(detailsarr[0]));
invoiceobj.setInvoiceNumber(detailsarr[1]);
invoiceobj.setCustomerId(Long.parseLong(detailsarr[2]));
custid = Long.parseLong(detailsarr[2]);
invoiceobj.setTotalAmount(Double.parseDouble(detailsarr[3]));
invoiceobj.setAmountDue(Double.parseDouble(detailsarr[4]));
dueamt = Double.parseDouble(detailsarr[4]);
if(hashmap.containsKey(custid))
{
Map<Double,Integer> hashmap2 = hashmap.get(custid);
newdue = olddue + dueamt;
count++;
hashmap2.put(newdue, count);
}
else
{
Map<Double,Integer> hashmap1 = new TreeMap<>();
hashmap1.put(dueamt, 1);
hashmap.put(custid, hashmap1);
}
}
for(Map.Entry<Long,Double> entry : hashmap2.entrySet())
{
Long custid1 = entry.getKey();
Double amt = entry.getValue();
if(amt>1000)
{
System.out.println("Customer id "+custid1);
System.out.println("Number of invoice pending for payment:"+count);
System.out.println("Total Due Amount: $"+amt);
}
}