3 Stimmen

Liste in java mit Zufallszahlen

Ich erhalte den folgenden Fehler.

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

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

{
    List services = 

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

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

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

    Collections.shuffle(services);

    //Collections.sort(list);

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

Nach dem Kompilieren des obigen Codes erhalte ich den folgenden Fehler.

C:\>javac ShufflingListAndArray.java
ShufflingListAndArray.java:17: incompatible types
found   : java.lang.Object
required: java.lang.String
  String s = services.get(rnd.nextInt(services.size()));
                         ^
1 error

5voto

polygenelubricants Punkte 362173

Ändern Sie List services ... a List<String> services

1voto

Colin Gislason Punkte 5249

List.get() gibt ein Objekt zurück. Sie müssen es in eine String-Variable umwandeln oder generische Methoden verwenden, um es zu speichern.

Zur Verwendung von Generika:

List<String> services = ...

Um sie zu werfen:

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

1voto

BalusC Punkte 1034465

Der Kompilierungsfehler ist ziemlich eindeutig:

found   : java.lang.Object
required: java.lang.String

Sie besagt, dass Object zurückgegeben (gefunden) wird, aber dass Ihr Code erfordert, dass es sich um eine String .

Sie müssen entweder die Parameter der List mit Hilfe von Generika so dass es sofort eine String an jedem List#get() anrufen (mehr empfohlen):

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

oder a nach unten gerichtet die zurückgegebenen Object a String selbst:

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

0voto

objects Punkte 8551

Sie müssen angeben, dass es sich um eine Liste von Zeichenketten handelt.

List<String> services = Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"});

0voto

missingfaktor Punkte 88801

Von Ihrem este Frage, es scheint mir, dass Sie eine ältere Java-Version als Java 5 verwenden.

Der folgende Code sollte mit ihm funktionieren:

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

public class ShufflingListAndArray {
  public static void main(String[] args) throws IOException {
    List services = Arrays.asList(new String[] {"COMPUTER", "DATA", "PRINTER"}); 
    Random rnd = new Random();
    String s = (String) services.get(rnd.nextInt(services.size()));
    Collections.shuffle(services);
    System.out.println("List sorting :" + services);
  }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X