使用 arraylist 访问 pojo 对象



我正在尝试解决以下项目,我需要根据他们的购买情况选择最佳客户。所有必要的详细信息,如姓名和购买金额都包含在我的POJO对象(客户(中。我制作了一个 ArrayList of Cusomers,并尝试在 for 循环中访问 getName((/getAmount 方法。

              import java.util.ArrayList;
               import java.util.Scanner;
    public class Store {
     ArrayList<Customer> Customers = new ArrayList<>();
    Customer[] csa = new Customer[1000];
     public void addSale(String customerName, double amount) {
    String cn = customerName;
    double am = amount;
    Customer cs = new Customer(cn, am);
    Customers.add(cs);
}
public String nameOfBestCustomer() {
    String name = null;
    //Customer csa=new Customer();
    double largest = csa[0].getAmount();
    // gives me:java.lang.NullPointerException
    for (int i = 1; i < Customers.size(); i++) {
        if (largest < csa[i].getAmount()) {
            largest = csa[i].getAmount();
            name = csa[i].getName();
        }
    }
    // return name+""+largest;
    return name;
}

public static void main(String[] args) {
    Store s = new Store();
    double am;
    Scanner scanner = new Scanner(System.in);
    while (true) {
        System.out.println("Enter Customer name:");
        String cn = scanner.next();
        if (cn.equals("done")) {
            am = 0;
            scanner.close();
            break;
        } else {
            System.out.println("Enter Amount:");
            am = scanner.nextDouble();
            s.addSale(cn, am);
        }
    }
    System.out.println("Best customer " + s.nameOfBestCustomer());
}
            }

当我已经有适用于客户的 Arraylist 时,是否可以使用 Customer[] csa = new Customer[1000]?

谁能告诉我如何使用Array或ArrayList访问客户方法?还有为什么 largest = csa[0].getAmount(( 给了我一个 NullPointerException?

源代码中有很多错误,例如

  1. 客户类构造函数分配错误
  2. 您没有在数组上存储任何对象,因此对象为空。

参考下面的代码,我已经更新了源代码,只需复制粘贴即可...

包演示;

import java.util.ArrayList;
import java.util.Scanner;
public class Store {
    ArrayList<Customer> Customers = new ArrayList<Customer>();
   Customer[] csa = new Customer[1000];
    public void addSale(String customerName, double amount) {
   String cn = customerName;
   double am = amount;
   Customer cs = new Customer(cn, am);
   Customers.add(cs);
}
public String nameOfBestCustomer() {
   String name = null;
   //Customer csa=new Customer();
   double largest = Customers.get(0).getAmount();
   // gives me:java.lang.NullPointerException
   for (int i = 1; i < Customers.size(); i++) {
       if (largest < Customers.get(i).getAmount()) {
           largest = Customers.get(i).getAmount();
           name = Customers.get(i).getName();
       }
   }
   // return name+""+largest;
   return name;
}

public static void main(String[] args) {
   Store s = new Store();
   double am;
   Scanner scanner = new Scanner(System.in);
   while (true) {
       System.out.println("Enter Customer name:");
       String cn = scanner.next();
       if (cn.equals("done")) {
           am = 0;
           scanner.close();
           break;
       } else {
           System.out.println("Enter Amount:");
           am = scanner.nextDouble();
           s.addSale(cn, am);
       }
   }
   System.out.println("Best customer " + s.nameOfBestCustomer());
}
           }
class Customer {
private String name;
private double amount;

public Customer(){
}
//@SuppressWarnings("null")
public  Customer(String name,double price) {
    this.name=name;
    this.amount= price;
}


public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public double getAmount() {
    return amount;
}
public void setAmount(double amount) {
    this.amount = amount;
}
                 }


Output :
Enter Customer name:
ramesh
Enter Amount:
100
Enter Customer name:
pramod
Enter Amount:
200
Enter Customer name:
done
Best customer pramod

最新更新