如何在ArrayList中添加客户详细信息?

时间:2013-01-21 18:43:54

标签: java list arraylist

我正在努力创建一个客户。我正在尝试在arrayList中添加每个用户输入,并将其输出到最后。但是,我的输出给了我一些记忆位置。有人可以为此提供一些亮点吗?

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    System.out.println("Enter First Name: ");
    String firstName = input.nextLine();
    System.out.println("Enter Last Name: ");
    String lastName = input.nextLine();
    System.out.println("Enter Home Address: ");
    String homeAddress = input.nextLine();

    Customer cus = new Customer(firstName, lastName, homeAddress);

    System.out.println("\nWelcome: ");
    System.out.print(cus.getFirstName() + cus.getLastName());
    System.out.println("\n Your Shipping Address: ");
    System.out.print(cus.getHomeShippingAddress());

    List<Customer> customer = new ArrayList<Customer>();

    customer.add(cus);

    // Output the list contents
    printList(customer);

}

public static void printList(List<Customer> list) {

    System.out.println("Customers: ");

    for (Customer customer : list) {
        System.out.printf("%s", customer);
    }
    System.out.println();
}

}

enter image description here

4 个答案:

答案 0 :(得分:4)

覆盖toString对象的Customer方法。

当前的是默认实现。

万一你想知道@ 5c694a18是什么意思:它是你的Customer对象的哈希码的无符号十六进制表示。

答案 1 :(得分:2)

您正在尝试打印对象,因此它转到toString()方法。您可能希望通过覆盖从Object继承的方法来实现自己的toString()方法。

类似的东西:

@Override 
public String toString() {
    StringBuilder result = new StringBuilder();
    //build your string here. 
    //Perhaps by appending the customer's first and last name?
    return result.toString();
}

您目前看到的,继承自Object的内容是:

  

getClass()。getName()+'@'+ Integer.toHexString(hashCode())

答案 2 :(得分:1)

当您在Customer类中覆盖toString 时,会调用对象的toString ,这将返回NameOfTheClass +"@" +SomeHexNumber.

 return getClass().getName() + "@" + Integer.toHexString(hashCode());

覆盖toString() method中的Customer class,以便打印相应的数据。 如下所示:

public String toString() {
return this.firstName+" " + this.lastName ;
}

答案 3 :(得分:1)

Customer是一个对象,您需要覆盖toString()方法以输出您想要该对象的值。