我的问题是,我可以使用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
时遇到异常的情况下,它的性能会更好。第一种情况将需要额外的回滚机制,因为对象已存在于阵列中。