在 Java 中的空 ArrayList 中添加带有用户输入的元素

Add elements with user Input in a null ArrayList in Java

我解释一下,我试图让用户在一个固定大小为五个元素的列表中输入五个元素;为此,我将这些元素初始化为 null。我的问题是我不知道如何针对这种特殊情况进行操作。我已经试过了,但这显然不是正确的解决方案。

我将这段代码变成了两个不同的空构造函数方法,以在主 class 中使用熟悉的 main 方法。但是这个class是我最头疼的一个。

顺便说一句!我希望用户添加元素,而不是我。

package HashArray;
import java.util.ArrayList;
import java.util.Scanner;
public class arrayListNull {
    public static void arrayList() {
         ArrayList<Integer> list = new ArrayList<Integer>();
         list.add(null);
         list.add(null);
         list.add(null);
         list.add(null);
         list.add(null);  
    }
    public static void inputUser() {
        Scanner scanner = new Scanner(System.in);
        for(int i=0 ; i < 5 ; i++){
            arrayList.list.add(scanner.nextInt());
        }
        System.out.println(arrayList.list);
        scanner.close();
    }
}```

很有可能是你正在做的训练的activity,卡住了。你可以试试这个:

public static void inputUser() {
    List<Integer> arrayList = new ArrayList<>();
    int allowInputs = 5;

    Scanner scanner = new Scanner(System.in);
    for (int i = 0; i < allowInputs; i++) {
        arrayList.add(scanner.nextInt());
    }
    scanner.close();

    System.out.println("Your specified elements:");
    arrayList.forEach(System.out::println);
}

// RUN
public static void main(String[] args) {
    inputUser();
}

写得不错! ¯_(ツ)_/¯

您定义了一个名为 arrayList 的 public 方法,但 returns 什么都没有(void)。该方法 (a) 实例化一个 ArrayList 对象,(b) 使用 null 引用填充列表,这是多余的,因为 null 是默认值,并且 (c) 在结束时丢弃 ArrayList 对象方法。噗,走了。

因此您的其他方法 inputUser 引用了一个名为 arrayList 的变量,该变量从未存在过。

您的代码还有其他问题。您没有遵循 Java 命名约定:类 以大写开头,方法和变量以小写开头。您过于依赖 static,这可能表明您没有学习 object-oriented 概念。而且您似乎在盲目编码,没有经过深思熟虑,也没有使用其他示例代码。我建议你复习你的教科书和 Oracle free-of-cost.

提供的 Java Tutorials

顺便用try-with-resources语法自动关闭Scanner对象等资源