我的问题是,我可以使用ArrayList做同样的事情吗,它要求用户输入名称和价格并访问对象成员并设置名称和价格,或者我必须先创建对象并将其传递给ArrayList?

public static void startMethod(Item[] itemsList, Scanner keyBoard){
    for (int i = 0; i < itemsList.length; i++) { // for loop iterate 3 times
        itemsList[i] = new Item(); // Create new object every time the loop iterate
        System.out.println("Enter an item's name");
        itemsList[i].setName(keyBoard.nextLine());
        System.out.println("Enter an item's price");
        itemsList[i].setPrice(keyBoard.nextDouble());
        keyBoard.nextLine();// To avoid the skip line that is done by the nextLine() method
    }


还是我需要先创建对象并传递整个对象?例

System.out.println("Enter a name");
    String input = key.nextLine();
    System.out.println("Enter a price");
    double x = key.nextDouble();
    Item itemList1 = new Item(input,x);
    itemsList.add(itemList1);

最佳答案

第二种情况肯定更好,更可维护并且可能更容易调试。

而且,最重要的是,在构造对象Item时遇到异常的情况下,它的性能会更好。第一种情况将需要额外的回滚机制,因为对象已存在于阵列中。

10-04 17:07