2010-11-28 4 views
0

J'ai essayé de comparer ceci à des exemples et je n'arrive pas à trouver pourquoi cela ne se compilera pas alors j'espérais avoir un aperçu.ArrayList dans Java - Quel est le problème avec ma seule ligne de code?

ArrayList<Integer> listOfPrimeNumbers(initialCapacity) = new ArrayList<Integer>(); 

est mon code. Ma compréhension est qu'il crée un nouvel objet ArrayList, de type Integer qui s'appelle listOfPrimeNumbers et a une capacité initiale de l'argument que je passe dans lequel on appelle initialCapacity.

Malheureusement, je reçois un «'; "erreur" attendue lorsque j'essaie de compiler ceci? Quelqu'un pourrait-il m'aider?

+3

Je ne peux pas croire que tous les upvotes sur cette annonce. Duffymo a eu la bonne réponse et a été le premier à répondre. Tout l'autre poste où fait minutes plus tard. Upvoting dupliquer les réponses encourage juste plusieurs postings inutiles. Il n'y a rien à ajouter à cette publication. C'était une question simple et directe avec une réponse aussi simple et directe. – camickr

+0

@camickr: Tout à fait. Et merci d'avoir supprimé votre réponse en double dès que vous avez vu Duffymo y être déjà arrivé. J'aimerais que plus de gens le fassent. –

+1

Je pense que je les ai votés. Ils étaient corrects, bien sûr. Est-ce faux? – duffymo

Répondre

10

Ceci est correct:

ArrayList<Integer> listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity); 

Voyez-vous pourquoi? Le premier bit déclare le type statique de la référence; le deuxième bit est le nom de la référence; le troisième appelle le constructeur et initialise la mémoire.

je pourrais recommander que vous pensez à ce codage de cette façon:

List<Integer> listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity); 
+0

Bien sûr ... je suis un idiot. Je vous remercie. – user476033

+6

Pas un idiot - pas besoin d'utiliser de tels mots sur vous-même. Nous avons tous le code aveugle à certains moments. – duffymo

+1

+1 pour déclarer la liste à une interface –

3

Vous essayez de passer un argument au nom de la variable. Il devrait aller dans le constructeur sur le côté droit du signe =

ArrayList<Integer> listOfPrimeNumbers = new ArrayList<Integer>(100); 
1
ArrayList<Integer> listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity);