在编写打印素数数组的方法时遇到麻烦

时间:2015-02-13 08:53:33

标签: java arrays primes

当我编译时,我收到一条错误,指出“无法找到符号”指向我的arr.add(j)行。有人能解释我的代码有什么问题吗?

public class MyClass {
    public static boolean IsPrime(int p) {
        for (int i = 2; i < p; i++) {
            if (p % i == 0 && i != p)
                return false;
            }
            return true;
        }
    }

    public static int[] GetPrimes(int n) {
        int[] arr = new int[n];
        for (int j = 1; j <= n; j++) {
            if (IsPrime(j) {
                arr.add(j);
            }
        }
        return arr;
    }
}

2 个答案:

答案 0 :(得分:3)

Java不是javascript:数组没有方法(除了那些从Object继承的方法,基本上没用)。

改为使用List<Integer>

List<Integer> arr = new ArrayList<>();
...
arr.add(j);
...
return Arrays.asList(arr);

答案 1 :(得分:0)

此行arr.add(j);必须更改为arr[j];,因为您有array而不是List对象。

此外,您的班级名称必须以角色开头。