Sieves work great for finding lists of primes up to n, much faster than the method you are currently using (for a list of primes to 1000000, sieving returns the list in 64ms on my machine, while brute force returns it in 643 ms). However, I can give you some pointers if you want with your currents algorithm:
for (int j = 2; j < i; j++) {
if (i == i / j * j) {
prime = false;
}
}
First, you upper bound is way to high. j need only go to the square root of i to check all possible factors. Also
if (i == i / j * j) {
prime = false;
}
can be changed to
if (i % j == 0) {
prime = false;
}
That percent sign thingy is called a modulo. What it does is it, in this case, divides i by j and returns the remainder. So, for example, 7 % 2 = 1 because when you long divide, you get 3 remainder 1 or simply 3 and 1/2. If i evenly divides into j, then it will always be zero, if not, then it will be some integer > 0.
One other thing with building the list your way, using the ArrayList class will be much, much easier than using that array.