在 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
对象等资源
我解释一下,我试图让用户在一个固定大小为五个元素的列表中输入五个元素;为此,我将这些元素初始化为 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.
顺便用try-with-resources语法自动关闭Scanner
对象等资源