Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich möchte die Zahlen die in meinem Array gespeichert deren Häufigkeit ausgeben lassen.
Gut, ich hab das jetzt soweit hinbekommen, allerdings wirkt mein Code etwas naja, "primitiv". Nun würd ich gerne wissen ob ich nicht meinen Code noch etwas vereinfachen kann.
Java:
public class Test {
public static void main(String[] args) {
int zero = 0;
int eins = 0;
int zwei = 0;
int drei = 0;
int vier = 0;
int fuenf = 0;
int sechs = 0;
int sieben = 0;
int acht = 0;
int neun = 0;
int zehn = 0;
int[] intfeld5 = new int[10];
for (int i=0; i<intfeld5.length; i++) {
intfeld5[i] = (int) (9 * Math.random());
if (i == 0)
zero++;
if (i == 1)
eins++;
if (i == 2)
zwei++;
if (i == 3)
drei++;
if (i == 4)
vier++;
if (i == 5)
fuenf++;
if (i == 6)
sechs++;
if (i == 7)
sieben++;
if (i == 8)
acht++;
if (i == 9)
neun++;
if (i == 10)
zehn++;
}
System.out.println("Null: " + zero);
System.out.println("Eins: " + eins);
System.out.println("Zwei: " + zwei);
System.out.println("Drei: " + drei);
System.out.println("Vier: " + vier);
System.out.println("Fuenf: " + fuenf);
System.out.println("Sechs: " + sechs);
System.out.println("Sieben: " + sieben);
System.out.println("Acht: " + acht );
System.out.println("Neun: " + neun);
System.out.println("Zehn: " + zehn);
}
}
Was ich noch fragen wollte, ist das Wort "null" geschützt? Ich konnte null nicht hinschreiben da ich ständig einen Fehler bekommen habe und musste deshalb auf zero ausweichen.
Ja, ist es. Du kannst deine Variable auch nicht "for", "import", "while" etc kennen
Zum Code:
Warum speichst du die Häufigkeit nicht auch in einem Array?
Java:
int[] frequency = new int[10];
...
frequency[5]++; //Häufigkeit von 5
Außerdem musst du nicht
Code:
i
auswerten, sondern
Code:
intfeld5[i]
Und es kommt bei dir auch nie eine 10 raus... und auch keine 9
dazu brauchst du aber erstmal eine collection. bei einem primitiven array geht das imho nur, wenn du über das array iterierst und die liste füllst (besser: sofort eine Collection nehmen oder ein Array vom Typ Integer). aus dieser liste würde ich dann an set machen. warum? weil ein set jeden wert nur genau einmal enthalten kann. wenn du jetzt durch das set iterierst und für jedes Object (in dem Fall sind es Objekte vom Typ Integer, weil es keine primitiven Generics in java gibt) frequency aufrufst, weisst du wie oft jedes element im array/list vorhanden ist.
das wäre dann eine option, die wirklich auf jede konstellation passt. deine geht ja nur von 0-10.
Natürlich ist es auch als primitve iteration machbar.
import java.util.*;
public class Frequency {
public static void main(String[] args) {
List<Integer> list = randomInit(1000);
Set<Integer> set = new HashSet<Integer>(list);
for (Integer i : set) {
System.out.println("Die Zahl " + i + " ist " + Collections.frequency(list, i) + " Mal vorhanden");
}
}
public static List<Integer> randomInit(int size) {
List<Integer> ret = new ArrayList<Integer>();
Random rnd = new Random();
for (int i = 0; i < size; i++) {
ret.add(rnd.nextInt(100));
}
return ret;
}
}
edit: für eine sortierte Ausgabe einfach ein TreeSet nehmen