【发布时间】:2010-11-28 23:00:59
【问题描述】:
我认为构造函数在逻辑上是正确的,我只是不知道如何在 main 中调用它! :) 有人可以帮忙吗?如果有人能快速浏览一下我的代码,那就太好了 :) 非常感谢!
另外,我在这个实现中使用了arrayLists,我必须这样做,所以我不想改变它,即使只使用数组更容易实现。
import java.util.*;
public class PrimeNumberss {
public static void main(String args []){
PrimeNumberss PrimeNumbers = new PrimeNumberss(10);
}
public PrimeNumberss (int initialCapacity) {
ArrayList<Integer> listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity);
long numberOfPrimes = 0; //Initialises variable numberOfPrimes to 0
int start = 2;
boolean[] isPrimeNumber = new boolean[initialCapacity + 1];
for (int i=0;i==initialCapacity;i++) {//setting all values in array of booleans to true
isPrimeNumber[i] = true;
}
while (start != initialCapacity)
{
if (isPrimeNumber[start])
{
listOfPrimeNumbers.add(start);
//add to array list
numberOfPrimes++;
for (int i = start; start < initialCapacity; i+=start)
{
isPrimeNumber[i] = false;
}
}
start++;
}
}
}
【问题讨论】:
-
有什么问题?如果您遇到错误,请提供详细信息。如果结果不符合预期,请提供详细信息
-
看起来你说得很好,到底是什么问题?
-
抱歉没有详细说明!我想通过打印前 10 个素数来测试我正在调用的构造函数。当我运行它时,它什么也没打印。我知道我忘记了一些愚蠢的事情,但我现在累死了,只是看不到它!
-
您只会找到小于 N(您的初始容量)的素数,而不是前 N 个素数。
-
在构造函数末尾尝试
System.out.println(listOfPrimeNumbers)。