2013-05-10 1 views
1

Я пытаюсь сохранить список простых чисел, используя java, и наткнулся на ArrayDeque. Я не уверен, что это правильный случай, чтобы использовать его, но так как я не знаю числа простых чисел, мне нужна способность расти.Использование ArrayDeque Java

Код предназначен для прохождения номеров от 2 до 1000 и проверки, являются ли они просто отличными или нет.

У меня возникают некоторые ошибки. Я довольно новичок в этом, поэтому, если кто-нибудь может вести меня в правильном направлении, это было бы здорово. Является ли использование массива с большой предустановленной емкостью лучше всего?

Большое спасибо, Behzad

import java.util.ArrayDeque; 
import java.util.Deque; 

public class Maths { 
public static void main (String[] arg) {   

    int x = 2; 
    ArrayDeque<integer> primes = new ArrayDeque<integer>(8); 

    for(int count = 2; count<1000; count++) { 
     if (x%count == 0) { 
      System.out.println("Number is not prime"); // If it isn't a prime, it moves onto the next number. 
      x = x + 1; 
      count = 2; 
     } 

     else if (x >1000) { 
      break; 
     } 

     else if (count == x - 1) { 
      System.out.println(x + " is a prime"); //This possibility singles out prime numbers 
      primes.add(x); 
      x = x + 1;        // Need to find a way to add them to memory. 
      count = 2; 
     } 
    } 
    System.out.println("Searchfinished"); 
    System.out.println(primes); 
} 
} 
+5

В java нет целого числа. Примитивным является 'int', объект' Integer'. – Aquillo

+0

Кроме того, «получение некоторых ошибок» не помогает нам. Пожалуйста, предоставьте ошибки. – Aquillo

+0

Можете ли вы подробно остановиться на «Я получаю некоторые ошибки»? – Skepi

ответ

3

Там нет вещь в Java, как integer. Правильный - Integer.

import java.util.ArrayDeque; 
public class MyClass { 
    public static void main(String args[]) { 

    int x = 2; 
    Deque<Integer> primes = new ArrayDeque<Integer>(8); 

    for(int count = 2; count<1000; count++) { 
     if (x%count == 0) { 
      System.out.println("Number is not prime"); // If it isn't a prime, it moves onto the next number. 
      x = x + 1; 
      count = 2; 
     } else if (x > 1000) { 
      break; 
     } else if (count == x - 1) { 
      System.out.println(x + " is a prime"); //This possibility singles out prime numbers 
      primes.add(x); 
      x = x + 1;        // Need to find a way to add them to memory. 
      count = 2; 
     } 
    } 
    System.out.println("Searchfinished"); 

    System.out.println(primes); 
} 
} 
+0

Ahhhh ничего себе, большое вам спасибо. Оно работает! – Behzad

+0

Не вернее ли это: Deque primes = new ArrayDeque <> (8); ??? – djangofan

+0

Да. Спасибо, @djangofan. –