having trouble printing an array of prime numbers that has been resized

HI, im having trouble with my printPrimeNumbers() method printing the current state of an array, I can only get it to print the original state it was in. The array is inside of a primeNumbers object. I used checkAndResize to resize that array. my printPrimeNumbers method must be void without a parameter. How could i get my PrintPrimeNumbers method to print out a resized array without modifying the parameter? Any ideas.

Here is my PrimeNumbers class:

/**

* Created by IntelliJ IDEA.

* User: Kevin

* Date: Mar 4, 2007

* Time: 1:53:56 AM

* To change this template use File | Settings | File Templates.

*/

package primes;

publicclass PrimeNumbers{

privateboolean [] sieve;

public PrimeNumbers(int upper){

initializeSieve(upper);

}

publicint getNthPrime (int n){

int prime = 0;

double num;

if (n >= sieve.length)

checkAndResize(n + 1);

for (int i = 0; i < sieve.length; i++){

if(sieve[i])

prime++;

if (prime == n)

return i;

if (prime < n && i == sieve.length -1)

checkAndResize(2*sieve.length);

}

return -1;

}

publicint getNumberPrimeNumbers(int n){

int primes = 0;

for (int i =0 ; i < sieve.length ; i ++){

if (n > sieve.length){

checkAndResize(n);

if(sieve[i])

primes++;

}

elseif (sieve[i])

primes++;

}

return primes;

}

publicint getSieveSize ()

{

return sieve.length;

}

publicboolean isPrime (int n){

if (n > sieve.length){

checkAndResize(n);

//initializeSieve(n);

}

return sieve[n];

}

// prints out the prime numbers inside sieve

publicvoid printPrimeNumbers(){

int n = 0;

boolean first =true;

System.out.print("[");

for(int i = 0; i < sieve.length - 1; i++){

n++;

if(sieve[i] ==true && n != sieve.length - 1){

if(first) first =false;

else System.out.print(" ");

System.out.print(i);

}

}

System.out.println("]");

}

// checks length of sieve with N and then resizes sieve if nessecary.

privatevoid checkAndResize (int n){

if ((n + 1) >= sieve.length){

initializeSieve(2*n);

}

}

privatevoid setMultiples (int k){

for (int i = 2*k; i < sieve.length; i += k)

sieve [i] =false;

}

privatevoid initializeSieve (int upper){

if ( upper < 2)

sieve =newboolean [2];

else

sieve =newboolean [upper + 1];

sieve[0] =false;

sieve[1] =false;

for (int i =2 ; i< sieve.length; i ++ )

sieve[i] =true;

int bound = (int) Math.ceil(Math.sqrt(sieve.length));

for (int i = 2 ; i < bound ; i ++)

if (sieve[i])

setMultiples (i);

}

private String booleanToString (boolean value)

{

if (value)

return"T";

else

return"F";

}

public String toString (){

StringBuffer buf =new StringBuffer("[");

for (int i = 0; i < sieve.length -1 ; i ++)

buf.append(booleanToString (sieve[i]) +" " );

buf.append(booleanToString (sieve[sieve.length -1]) +"]");

return buf.toString();

}

}

here is the client code

PrimeNumbers test =new PrimeNumbers(16);

System.out.println(test);

System.out.println("There are " + test.getNumberPrimeNumbers(16) +

" prime nummbers in the sieve from 1 to 15. \n");

System.out.println("There are " + test.getNumberPrimeNumbers(26) +

" prime numbers in the resized sieve from 1 to 25.");

System.out.println("\nThe first 25 prime numbers are:");// makes sense why it doesnt work

test.printPrimeNumbers();

System.out.println("\nThe 13th prime number is: " + test.getNthPrime(13));

System.out.println();

System.out.println("The number 3001 is prime: " + test.isPrime(3001));

do you see how my methods resized it?

here is the output:

[F F T T F T F T F F F T F T F F F]

There are 6 prime nummbers in the sieve from 1 to 15.

There are 15 prime numbers in the resized sieve from 1 to 25.

The first 25 prime numbers are:

[2 3 5 7 11 13 17 19 23 29 31 37 41 43 47]// this is only the first 15 elements

The 13th prime number is: 41

The number 3001 is prime: true

thanks for taking your time to look at this

[9128 byte] By [kevin123a] at [2007-11-26 20:52:25]
# 1
What's the problem? You say that there are 15 prime numbers in the range 1-25. Your method printPrimeNumbers() prints the last calculated primes, and that is 15. So the program works.
kajbja at 2007-7-10 2:17:50 > top of Java-index,Java Essentials,Java Programming...
# 2
Why do you expect it to print 25 primes when you haven't calculated 25?Kaj
kajbja at 2007-7-10 2:17:50 > top of Java-index,Java Essentials,Java Programming...
# 3
lol, i see, its kinda late, so i kinda forgot what the program does for some reason, you guys are right.
kevin123a at 2007-7-10 2:17:50 > top of Java-index,Java Essentials,Java Programming...