ArrayList、私有实例变量和构造函数

-1 java arraylist drjava

我在创建Arraylist一个新类时遇到了问题(我使用的是DrJava IDE)。任务是创建一个带有n编号为 的彩票的构造函数1 to n

import java.util.ArrayList;

public class Tombola {
  
    private ArrayList<Integer> arr;
  
    public Tombola(int n){
        for (int i = 0; i < n-1; i++){
            this.arr.add(i) = i + 1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

意想不到的类型。

要求:变量。

发现:值。

我试图改变ni整数,但它没有帮助。

das*_*ght 5

这是不正确的:

 this.arr.add(i) = i + 1;
Run Code Online (Sandbox Code Playgroud)

add(...)方法不为您提供分配目标,因此分配它i+1不起作用。相反,您应该添加i+1,如下所示:

 this.arr.add(i + 1);
Run Code Online (Sandbox Code Playgroud)

您的代码中有两个额外的错误:

1:这个循环

for (int i = 0; i < n-1; i++)
Run Code Online (Sandbox Code Playgroud)

将迭代n-1次数,而不是n次数。要获得n迭代使用

for (int i = 0; i < n; i++) // <<== This is most common
Run Code Online (Sandbox Code Playgroud)

或者

for (int i = 0; i <= n-1; i++) // <<== This is less common
Run Code Online (Sandbox Code Playgroud)

2:您的数组列表未初始化。您需要按如下方式更改其声明:

private ArrayList<Integer> arr = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

甚至

private List<Integer> arr = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)