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



我解释说,我试图让用户在一个固定大小为五个元素的列表中输入五个元素;为此,我将这些元素初始化为null。我的问题是,对于这个特殊的案例,我不知道该怎么做。我试过了,但显然不是正确的解决方案。

我把这段代码分成了两个不同的空构造函数方法,用在一个熟悉的main方法的main类中。但这门课是我最头疼的一门课。

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

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();
}
}```

您定义了一个名为arrayList的公共方法,该方法不返回任何内容(void(。该方法(a(实例化ArrayList对象,(b(用null引用填充列表,这是多余的,因为null是默认值,并且(c(在方法结束时丢弃该ArrayList对象。普夫,走了。

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

您的代码还有其他问题。您没有遵循Java命名约定:类以大写字母开头,方法和变量以小写字母开头。您过于依赖static,这可能表明您没有学习面向对象的概念。而且您似乎在盲目地编码,没有仔细考虑,也没有使用其他示例代码。我建议你复习一下你的课本和Oracle免费提供的Java教程。

顺便说一句,使用try-with-resources语法可以自动关闭Scanner对象等资源。

这很可能是你正在进行的一项训练活动,而你却陷入了困境。你可以试试这个:

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();
}

好的编码!_(ツ)_/

相关内容

  • 没有找到相关文章

最新更新