Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 循环中的ArrayList_Java_Arrays_Arraylist - Fatal编程技术网

Java 循环中的ArrayList

Java 循环中的ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我的问题是,我是否可以对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

我的问题是,我是否可以对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
    }

第二个场景显然更好,更易于维护,可能更易于调试


此外,最重要的是,当您在构建对象-
时遇到异常时,它在场景中的表现会更好。第一种方案需要额外的回滚机制,因为对象已经存在于数组中。

第二种方案显然更好,更易于维护,可能更易于调试


此外,最重要的是,当您在构建对象-
时遇到异常时,它在场景中的表现会更好。第一种情况需要额外的回滚机制,因为数组中已存在对象。

从性能角度来看,第二种情况更可取。第二种情况可能更好,但我不推荐。第一种情况很危险,例如,如果用户未输入完整或有效的数据,列表将包含不完整/无效的对象。还有一点线程安全性差,在一段时间内,列表包含不完整的数据。如果使用第二个,则
项可以有
final
字段。从性能角度来看,第二个更好。第二个更好,但我不推荐。第一个很危险,例如,如果用户没有输入完整或有效的数据,列表将包含不完整/无效的对象。还有一点线程安全性差,在一段时间内,列表包含不完整的数据。如果使用第二个,则
可以有
最终
字段,最好是
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);