2010-02-28 2 views
5

Je le code suivant:erreur de compilation lors de l'instanciation d'une nouvelle ArrayList

import java.util.*; 
import java.io.*; 
import java.util.*; 
import java.io.*; 

public class ShufflingListAndArray 
{ 
    public static void main(String[] args) throws IOException 
    { 
    List <String> services = new ArrayList<String> (
    Arrays.asList("COMPUTER", "DATA", "PRINTER"));//here I have used List <String> services=new ArrayList<String>(Arrays.asList("COMPUTER", "DATA", "PRINTER"));// followed by next statement Satring s=Services.get(rnd.nextInt(Services.size())); 

    String s = services.get(rnd.nextInt(services.size())); 

    Collections.shuffle(list); 
    //Collections.sort(list); 
    System.out.println("List sorting :"+ list); 
    } 
} 

Et quand je compile ce programme, je reçois l'erreur suivante:

C:\>javac ShufflingListAndArray.java 
ShufflingListAndArray.java:6: '(' or '[' expected 
    List<String> services = new ArrayList<String>(
             ^
1 error 

quelqu'un peut me aider à résoudre cette erreur?

+0

Quelle version de Java utilisez-vous? Les génériques ne sont supportés que depuis Java 5 ... – netzwerg

+0

Je me demande comment cela devrait compiler? Ou est-ce juste un petit bout de votre code? Tout d'abord, rnd n'est pas déclaré et la liste n'est pas déclarée non plus?! – kukudas

Répondre

0

Je me souviens vaguement d'avoir à addAll dans une liste au lieu de passer d'une liste dans le constructeur de ArrayLists

2

Remplacer les premières lignes d'un couple de votre fonction principale avec ceci:

List<String> services = Arrays.asList("COMPUTER", "DATA", "PRINTER"); 

Suivant l'exemple au Arrays.asList documentation .

(Vous avez également double import java.util.*;)

modifier:

Compte tenu des autres réponses et observations faites sur ma réponse, votre code ne semble être correct, et le problème est plus probable que vous besoin de le compiler avec Java 5 (ou plus récent), qui est la version lorsque Generics ont été introduites. Si vous devez l'exécuter sur la version 1.4.2 ou la version que vous avez, supprimez les instances de <String> et vous serez prêt à partir.

+1

Si vous deviez modifier cette liste plus tard, une exception UnsupportedOperationException sera générée car la liste renvoyée par Arrays.asList est non modifiable. Pour résoudre ce problème, copiez la liste dans un ArrayList (ou LinkedList ou autre) via le "constructeur de copie" comme dans la question d'origine ou addAll comme mkoryak dit. – MatrixFrog

1

Vous avez besoin de -source 1.5 ou -source 1.6 je pense. Ou mieux encore utiliser un IDE. Eclipse, NetBeans et IntelliJ sont tous gratuits.

+1

Je ne prendrais pas un IDE aussi vite. D'abord apprendre les concepts de base correctement :) – BalusC

Questions connexes