【问题标题】:Java, fill an array with a supplied numberJava,用提供的数字填充数组
【发布时间】:2014-11-29 13:17:21
【问题描述】:
import java.util.*;
public class IncreasingSum
{
public static void ArrayList(int[] args)
{
Scanner kb=new Scanner(System.in);
System.out.print("Enter a number:");
int num=kb.nextInt();
{ for (int loop=0; loop<num; loop++)
ArrayList <X> myList = new ArrayList<X>();
myList.add(loop);
}
}
}
我已经导入了 java.util.*;但它总是在 ArrayList 上报错。
【问题讨论】:
标签:
java
arrays
loops
arraylist
java.util.scanner
【解决方案1】:
有很多问题
- 应该是 static void main(String [] args),而不是 static void ArrayList(int [] args)
- X 应该是整数
- 循环应该在 add() 周围,而不是 new ArrayList()
- 循环外不需要额外的大括号
可能的缺陷
- 代码应该可能应该使用 add(n) 而不是 add(loop) 来“填充”具有相同数字的数组
- 如果以上为真,则只需使用 Collections.fill(myList, num);摆脱你的循环
固定
import java.util.ArrayList;
import java.util.Scanner;
public class IncreasingSum {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.print("Enter a number:");
int num = kb.nextInt();
ArrayList<Integer> myList = new ArrayList<Integer>();
for (int loop = 0; loop < num; loop++) {
myList.add(loop);
}
}
}
【解决方案2】:
语法错误
您在 ArrayList 行上收到错误的原因是您实例化它的方式。
这是一个如何将 ArrayLists 与泛型一起使用的示例:
http://docs.oracle.com/javase/tutorial/java/generics/why.html
基本上,在您的声明中,您需要将 X 替换为要存储在 ArrayList 中的元素类。在你的情况下,这将是整数。
ArrayList <X> myList = new ArrayList<X>(); //Throws error
ArrayList<Integer> myList=new ArrayList<Integer>(); //Will suit your need
修复列表声明后,您还需要使用 for 循环修复该行。 for 循环的起始大括号应位于循环声明之后,以修复您的其他语法错误。
{ for (int loop=0; loop<num; loop++) //Throws error for your program
for (int loop=0; loop<num; loop++){ //The declaration you need
其他潜在错误:
您还需要在类中包含 main 方法来执行您的程序。
仅供参考:
方法名称的 Java 约定以小写字母开头。因此,即使您确实有一个名为 ArrayList 的方法,arrayList 也会更符合方法命名约定。
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
【解决方案3】:
在 for 循环之前在数组列表中添加 Integer 并在循环中添加元素时,使用称为 Integer 的特定类作为泛型:
ArrayList <Integer> myList = new ArrayList<Integer>();
【解决方案4】:
for 循环后需要括号。现在 for 循环中唯一的指令是多次创建新的 ArrayList。数组列表应该在上面声明for循环。