我有一个分配,我需要计算数组列表中的素数。 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调用它。 此致
答案 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);
}