Hallo,
ich habe mir eine Methode geschrieben mit der ich die Absolute Häufigkeit von Werten ermitteln kann. Als Grundlage habe ich eine Array Liste in der Werte enthalten sind, sowas wie 1 2 5 1 1 3 4 7 3 1, die Absolute Häufigkeitsfunktion soll mir nun ausgeben, wie oft ein Wert vorkommt, z.b. kommt die 1 hier 4mal vor... Das dann eben für jede Zahl. Die Methode die ich geschrieben habe funktioniert auch, ich bin nur einfach auf der suche nach einer effizienteren Implementierung dafür. Also nehmt das ruhig als Anlass mal richtig über den Code herzufallen und zu "meckern". Ich möchte bestmöglich, diese Eingangsliste unverändert lassen.
Das Problem, was ich bei meiner Methode habe ist die "unsaubere" Ausgabe, aus:
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 3.0 | Zahl: 1.0
würde ich lieber das machen:
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 2.0 | Zahl: 2.0
Die Idee hab ich schon, nur wollte ich das einfach mal als Anlass nehmen mich mal selbst verbessern zu lassen, es gibt ja immer unterschiedliche Programmierungen aber hier könnt ihr mal wirklich meckern, ich wäre sehr froh, wenn ich dann auch noch etwa dazulernen könnte
Danke für Verbesserungsvorschläge!!!
PS: Bin ich hier noch im richtigen Unter-Forum?
ich habe mir eine Methode geschrieben mit der ich die Absolute Häufigkeit von Werten ermitteln kann. Als Grundlage habe ich eine Array Liste in der Werte enthalten sind, sowas wie 1 2 5 1 1 3 4 7 3 1, die Absolute Häufigkeitsfunktion soll mir nun ausgeben, wie oft ein Wert vorkommt, z.b. kommt die 1 hier 4mal vor... Das dann eben für jede Zahl. Die Methode die ich geschrieben habe funktioniert auch, ich bin nur einfach auf der suche nach einer effizienteren Implementierung dafür. Also nehmt das ruhig als Anlass mal richtig über den Code herzufallen und zu "meckern". Ich möchte bestmöglich, diese Eingangsliste unverändert lassen.
Java:
static double abs_haeufigkeit() {
double temp = 0;
// Oder Zwei Listen abgleichen, eine enthält alle Werte zum hochzählen eine weitere
// enthält die "sauberen" Parameter, auf die geprüft werden sollen:
/*
* Liste 1: 1 3 1 2 1 3 4 3 3
* Liste 2: 1 2 3 4
*/
// Oder Parameterübergabe und Vergleich
/*
* Ausgabe:
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 3.0 | Zahl: 1.0
*/
for(int i = 0; i < values.size(); i++) {
for(int j = 0; j < values.size(); j++) {
if(values.get(i).equals(values.get(j))) {
temp++;
}
}
System.out.println("Vorkommen: " + temp + " | " + "Zahl: " + values.get(i));
temp = 0;
}
return 0;
}
Das Problem, was ich bei meiner Methode habe ist die "unsaubere" Ausgabe, aus:
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 2.0 | Zahl: 2.0
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 3.0 | Zahl: 1.0
würde ich lieber das machen:
Vorkommen: 3.0 | Zahl: 1.0
Vorkommen: 2.0 | Zahl: 2.0
Die Idee hab ich schon, nur wollte ich das einfach mal als Anlass nehmen mich mal selbst verbessern zu lassen, es gibt ja immer unterschiedliche Programmierungen aber hier könnt ihr mal wirklich meckern, ich wäre sehr froh, wenn ich dann auch noch etwa dazulernen könnte
Danke für Verbesserungsvorschläge!!!
PS: Bin ich hier noch im richtigen Unter-Forum?
Zuletzt bearbeitet: