我解释说,我试图让用户在一个固定大小为五个元素的列表中输入五个元素;为此,我将这些元素初始化为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();
}
好的编码!_(ツ)_/