2010-03-01 7 views
0

Je le code suivanten Java en utilisant des nombres aléatoires

public class ShufflingListAndArray 
{ 
    public static void main(String[] args) throws IOException 

{ 
    List services = new ArrayList (


    Arrays.asList("COMPUTER", "DATA", "PRINTER")); 

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

    Collections.shuffle(list); 


    //Collections.sort(list); 


    System.out.println("List sorting :"+ list); 
    } 
} 

Je reçois l'erreur suivante lors de la compilation du programme ci-dessus.

C:\>javac ShufflingListAndArray.java 
ShufflingListAndArray.java:12: asList(java.lang.Object[] 
nnot be applied to (java.lang.String,java.lang.String,ja 
    Arrays.asList("COMPUTER", "DATA", "PRINTER")); 


     ^
ShufflingListAndArray.java:15: cannot resolve symbol 
symbol : variable rnd 
location: class ShufflingListAndArray 
    String s = services.get(rnd.nextInt(services.size())); 
         ^
ShufflingListAndArray.java:15: incompatible types 
found : java.lang.Object 
required: java.lang.String 
    String s = services.get(rnd.nextInt(services.size())); 
         ^
ShufflingListAndArray.java:17: cannot resolve symbol 
symbol : variable list 
location: class ShufflingListAndArray 
    Collections.shuffle(list); 
         ^
ShufflingListAndArray.java:19: cannot resolve symbol 
symbol : variable list 
location: class ShufflingListAndArray 
    System.out.println("List sorting :"+ list); 
             ^
5 errors 

S'il vous plaît aidez-moi à résoudre les errors.Thanks beaucoup ....

Répondre

0

Essayez:

public class ShufflingListAndArray 
{ 
    public static void main(String[] args) throws IOException 

{ 
    List services = Arrays.asList("COMPUTER", "DATA", "PRINTER"); 

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

    Collections.shuffle(list); 


    //Collections.sort(list); 


    System.out.println("List sorting :"+ list); 
    } 
} 

Et voir si vous obtenez toujours vos messages d'erreur rnd, si vous le faites, pouvez-vous afficher le message complet, il semble qu'il y a des parties de celui-ci coupé.

0

De même, vous n'avez pas déclaré la variable de liste: Collections.shuffle (list);

0

Fonctionne bien pour moi. utiliser les services à la place de la liste, en lecture aléatoire et lors de l'impression

1
... 
Arrays.asList("COMPUTER", "DATA", "PRINTER")); 

Comme vous pouvez le voir sur l'erreur du compilateur, il faut un tableau en entrée, et non pas une série de chaînes. Vous pouvez passer:

... 
Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"})); 

Deuxièmement, votre référence « services » n'utilise pas les types génériques, de sorte que son contenu ont le type de compilation objet et non String. Au lieu de cela que vous voulez:

List<String> services = new ArrayList<String>(

En troisième lieu, le nom de votre variable est 'services' et non 'liste', donc:

Collections.shuffle(services); 

Et même dans la déclaration finale. Dans ce cas, le compilateur vous dit exactement quel est le problème. Avez-vous lu sa sortie?

+2

Grâce à varargs, Arrays.asList() prendra heureusement une série de chaînes en entrée. –

+0

True, en réalité cette erreur de compilation semble due à une inférence de type conflictuelle - l'appel du constructeur l'amène à vouloir que le type générique soit lié à Object au lieu de String. –

0

Cela résout toutes vos erreurs:

List<String> services = Arrays.asList("COMPUTER", "DATA", "PRINTER"); 
    Random rnd = new Random(); 
    String s = services.get(rnd.nextInt(services.size())); 
    Collections.shuffle(services); 
    // Collections.sort(services); 
    System.out.println("List sorting :" + services); 

BTW La chaîne s est utilisée nulle part.

Questions connexes