2013-04-19 7 views
39

Ich brauche etwas Hilfe beim Schreiben einer Methode, die die ArrayList mischt. Ich kann nicht herausfinden, was ich in meine Methode einbauen soll. Hier ist was ich bisher habe. Ich habe versucht, die Random-Methode zu verwenden, um die ganzen Zahlen in der Liste randomisieren, aber das hat nicht funktioniert. Kann mir jemand zeigen, wie man das macht?Wie mische ich eine ArrayList?

Hier ist der Code Ich habe versucht:

import java.util.ArrayList; 
import java.util.Scanner; 

public class Lab 11 { 
    public static void main(String[] args) { 
    ArrayList<Double> list = new ArrayList<Double>(); 

    Scanner input = new Scanner(System.in); 
    System.out.print("Enter integers (input ends with 0): "); 
    double value; 

    do { 
     value = input.nextDouble(); // Read a value from the input 

     if (value != 0) 
     list.add(value); // Add the value if it is not in the list 
    } while (value != 0); 
    System.out.println("The maximum number is " + max(list)); 

    System.out.print("Enter five double values: "); 
    for (int i = 0; i < 5; i++) 
     list.add(input.nextDouble()); 

    System.out.println("The sum is " + sum(list)); 

    } 

    public static Double max(ArrayList<Double> list) { 
    if (list == null || list.size() == 0) 
     return null; 

    double result = list.get(0); 
    for (int i = 1; i < list.size(); i++) 
     if (result < list.get(i)) 
     result = list.get(i); 

    return result; 
    } 

    public static double sum(ArrayList<Double> list) { 
    double sum = 0; 
    for (int i = 0; i < list.size(); i++) 
     sum += list.get(i); 
    return sum; 
    } 
} 
+5

Verwenden Sie ['Sammlungen # shuffle (Listenliste)'] (http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html). – skuntsel

+0

http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm – Aurand

+1

Ich sehe Sie nicht mit der "_random Methode_" irgendwo überhaupt. Es sieht so aus, als hättest du nichts versucht und einfach deine letzte Aufgabe in den Fragenkasten eingefügt. Bitte nehmen Sie sich Mühe und stellen Sie nur eine Frage, wenn Sie etwas Bestimmtes haben möchten. Es gibt viele Fragen auf dieser Website, die erklären, wie man eine Liste zufällig auswählt. – jahroy

Antwort

97
Collections.shuffle(arrayList); 
+1

Wie druckst du dann das Ergebnis dieser gemischten ArrayList aus? – santafebound

+0

@santafebound Arrays.toString (arrayList.toArray()); –

18

Versuchen Collections.shuffle(list) .Wenn Verwendung dieser Methode zur Lösung des Problems gesperrt ist, dann kann man bei der tatsächlichen Umsetzung aussehen.

+1

Offensichtlich ist dies eine Hausaufgabe .... – jahroy

+0

Wenn ja, dann kann das OP die tatsächliche Implementierung dieser Methode durch Bezugnahme auf die rt.jar gehen – NINCOMPOOP

+0

Ok, ich habe den Code entfernt! – NINCOMPOOP

Verwandte Themen