计算arraylist中的素数

时间:2018-02-17 14:03:31

标签: java arraylist methods

我有一个分配,我需要计算数组列表中的素数。 Stackoverflow上有几种解决方案,但我需要以另一种方式完成。我在方法头本身初始化数组列表,而不是正文。我相信存在差异,但我可能错了。

我需要使用这种方法:

public static int countPrimeNumbers(ArrayList<Integer> list) {

}

到目前为止,我想出了这段代码:

public static int countPrimeNumbers(ArrayList<Integer> list) {
    list = new ArrayList<Integer>();

    int n = 0;
    int count = 0;
    System.out.println(list);

    for(int i=2; i<list.size(); i++) {
        if(n%i==0)
            count++;
    }
    return count;

}

但是我不确定它是否已经接近完成,因为我不知道如何从Main调用它。 此致

1 个答案:

答案 0 :(得分:2)

当您编写此list = new ArrayList<Integer>();时,您将丢弃作为参数传入方法的列表。这是你可以从main方法调用它的方法。

private static int countPrimeNumbers(List<Integer> list) {
    int count = 0;
    for (int i : list) {
        if (isPrime(i)) {
            count += 1;
        }
    }
    return count;
}

// FYI... logic to find prime number can further be optimised, i will leave it upto you
private static boolean isPrime(int number) {
    for(int i = 2; i < number; i++) {
        if(number % i == 0) {
            return false;
        }
    }
    return true;
}

public static void main(String args[]) {
    Integer[] numbers = {2, 3, 5, 6, 10};
    List<Integer> list = Arrays.asList(numbers);

    int result = countPrimeNumbers(list);

    System.out.println("Number of prime numbers = " + result);
}