2016-04-19 11 views
-2

Diese Woche arbeite ich an Datenstrukturen und cvs-Dateien. Ich verstehe, wie man eine cvs Akte liest und ich durchschnitt für Spalten von der Akte, aber ich konnte Median und Modus nicht tun. Mein Code zeigt nur die spezifische Spalte an. Ich möchte Median und Modus machen. Kann mir jemand helfen, den Median und den Modus aus der Spalte, die ich möchte, zu bekommen?Arraylist Datenstruktur

"CalforniaSchool.cvs" 

school name  students  teachers 

C.H.S    1203   45 

D.H.S    1023   67 

E.H.S    902   34 

A.H.S    1280   89 
ArrayList<String>medianmode=Files.readAllLines(Paths.get("CalforniaSchool.file")); 

String []final=medianmode.split(","); 


double close = Double.parseDouble(final[2]);//i want to do median and mode for column 2 
+0

Wissen Sie, Finale ist ein reserviertes Wort in Java? –

+1

Dieser Code wird nicht kompiliert. 1) 'readAllLines' gibt eine' List' zurück, nicht eine 'ArrayList'. --- 2) Kann 'split()' nicht auf einer 'ArrayList' aufrufen. --- 3) 'final' ist ein Schlüsselwort und kann nicht als Variablenname verwendet werden. --- Wenn du * "Durchschnitt für Spalten" * hast, dann zeige bitte ** deinen Arbeitscode ** dafür. – Andreas

Antwort

0

Es gibt einige Funktionen in Apache gemeinsamen Mathematik-Bibliothek, hier sind Sie: mean

Und auch einige Implementierungen hier:

Median:

public static int median(int[] m) { 
    int middle = m.length/2; 
    if (m.length%2 == 1) { 
     return m[middle]; 
    } else { 
     return (m[middle-1] + m[middle])/2.0; 
    } 
} 

Modus:

Wenn Sie Python verwenden, wäre es einfacher als Java mit Pandas. Wenn Sie immer noch gerne Java halten, würde ich sehr empfehlen, dass Sie sie Zeile für Zeile selbst implementieren.

Am besten.