【发布时间】:2018-02-17 14:03:31
【问题描述】:
我有一个任务,我需要计算数组列表中的素数。 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 调用它。 问候
【问题讨论】:
-
在第一行代码中你丢弃了输入!您不应该查看传递给该方法的整数吗?我建议你实现
static boolean isPrime(int i) { ... },然后执行return (int) list.stream().filter(YourClass::isPrime).count();之类的操作。 -
你只需要调用
printcountnum方法。就是这样 -
n在这里总是为零 -
@aioobe 你能详细说明一下吗?恐怕我不确定你的意思。
-
“您正在丢弃输入”...您有一个列表作为参数,然后您立即将值重新分配给一个完全不同的空列表。你的 for 循环不会循环任何东西,并且什么也不计数