使用arraylist访问pojo对象

时间:2017-11-20 07:22:22

标签: java arraylist

我正在尝试解决以下项目,我需要根据他们的购买选择最佳客户。所有必要的详细信息,如姓名和购买金额都包含在我的POJO对象(客户)中。 我创建了一个Cusomers的ArrayList并尝试在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());

}

            }

是否可以使用Customer [] csa = new Customer [1000]?当我已经为顾客准备了一个Arraylist?

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

1 个答案:

答案 0 :(得分:1)

您的源代码中存在许多错误,例如

  1. 客户类构造函数分配错误
  2. 您没有在数组中存储任何对象,因此对象为空。
  3. 请参阅下面的代码我已经更新了源代码,只需复制粘贴即可使用...

    包演示;

    sort