2013-04-19 43 views
39

Tôi cần một số trợ giúp trong việc viết một phương thức sẽ xáo trộn ArrayList. Tôi không thể tìm ra những gì để đặt trong phương pháp của tôi. Đây là những gì tôi có cho đến nay. Tôi đã thử sử dụng phương pháp ngẫu nhiên để phân ngẫu nhiên các số nguyên trong danh sách nhưng điều đó không hiệu quả. Ai đó có thể chỉ cho tôi cách làm điều này không?Làm thế nào để xáo trộn một ArrayList

Đây là mã tôi đã cố gắng:

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

Sử dụng ['Bộ sưu tập # shuffle (Danh sách danh sách)'] (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

Tôi không thấy bạn sử dụng "_random method_" ở bất kỳ đâu. Có vẻ như bạn chưa thử bất cứ điều gì và chỉ cần dán bài tập cuối cùng của bạn vào hộp câu hỏi. Hãy nỗ lực và chỉ đặt một câu hỏi khi bạn có một cái gì đó cụ thể để hỏi. Có nhiều câu hỏi trên trang web này giải thích cách ngẫu nhiên danh sách. – jahroy

Trả lời

97
Collections.shuffle(arrayList); 
+1

Làm thế nào để bạn in ra kết quả của ArrayList xáo trộn đó? – santafebound

+0

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

18

Cố gắng Collections.shuffle(list) .Nếu sử dụng của phương pháp này là cấm để giải quyết vấn đề, sau đó người ta có thể nhìn vào thực hiện thực tế.

+1

Rõ ràng đây là một bài tập về nhà .... – jahroy

+0

Nếu vậy, thì OP có thể thực hiện thực hiện phương pháp này bằng cách tham khảo rt.jar – NINCOMPOOP

+0

Ok, tôi đã xóa mã! – NINCOMPOOP

Các vấn đề liên quan