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

ArrayList, private instance variable and constructor

我无法在新的 class 中创建 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;
        }
    }
}

我得到的错误是:

unexpected type.

required: variable.

found: value.

我曾尝试将 ni 更改为整数,但没有帮助。

这是不正确的:

 this.arr.add(i) = i + 1;

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

 this.arr.add(i + 1);

您的代码中还有两个错误:

1:这个循环

for (int i = 0; i < n-1; i++)

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

for (int i = 0; i < n; i++) // <<== This is most common

for (int i = 0; i <= n-1; i++) // <<== This is less common

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

private ArrayList<Integer> arr = new ArrayList<Integer>();

甚至

private List<Integer> arr = new ArrayList<Integer>();