Hallo,
folgender Code liest die unteren Zeilen ein und speichert diese in ein ArrayList ab. Anschließend berechnet er aus allen Werten den Medien Wert aus und gibt in aus.
Wie könnte man den Code am besten modifizieren damit dieser jeweils aus drei Werten den Medien berechnet und wenn es keine drei Werte existieren dann eben aus dem Rest?
Viele Grüße
folgender Code liest die unteren Zeilen ein und speichert diese in ein ArrayList ab. Anschließend berechnet er aus allen Werten den Medien Wert aus und gibt in aus.
Code:
4
5
1
3
1
7
2
6
2
7
1
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
public class Numbers {
private ArrayList<Double> ret = new ArrayList<Double>();
public Numbers(String filename) throws IOException {
readNumbers(filename);
}
public void readNumbers(String fn) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(fn));
String line;
while ((line = br.readLine()) != null) {
ret.add(Double.parseDouble(line.trim()));
}
}
public double median() {
Collections.sort(ret);
if (ret.size() % 2 == 1) {
return ret.get((ret.size() + 1) / 2 - 1);
} else {
double lower = ret.get(ret.size() / 2 - 1);
double upper = ret.get(ret.size() / 2);
return (lower + upper) / 2.0;
}
}
public static void main(String[] args) {
String fileName = "F:\\testFile.txt";
try {
Numbers n = new Numbers(fileName);
System.out.println("Read file " + fileName);
double median = n.median();
System.out.println("Median value is " + median);
} catch (IOException ie) {
System.err.println("I/O Error: " + ie);
}
}
}
Wie könnte man den Code am besten modifizieren damit dieser jeweils aus drei Werten den Medien berechnet und wenn es keine drei Werte existieren dann eben aus dem Rest?
Viele Grüße