【问题标题】:trouble writing a method to print an array of primes编写打印素数数组的方法时遇到麻烦
【发布时间】:2015-02-13 08:53:32
【问题描述】:

当我编译时,我收到一条错误消息,指出“找不到符号”指向我的 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;
    }
}

【问题讨论】:

    标签: java arrays primes


    【解决方案1】:

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

    请改用List&lt;Integer&gt;

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

    【讨论】:

    • 其实数组有toString(), clone() ...继承自Object类的方法。
    【解决方案2】:

    这行arr.add(j);必须改为arr[j];,因为你有一个array而不是List对象。

    你的班级名称也必须以字符开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多