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.
Array mit unterschiedlichen Datentypen ausgeben...
nach langem rum gegoogel habe ich mich dennoch entschieden mich hier anzumelden und meine Fragen und Hilfe den Usern hier anzubieten.
Bin zwar in java ein Anfänger werde aber mein bestes tun. Habe ein Standard Problem. Und zwar habe ich ein Array was ich mit int und string befülle.
Und ich möchte dies auch auf meiner Konsole ausgeben, allerdings zeigt er mir immer den Speicherplatz an, anstatt mir das auszugeben was ich implementiert habe.
So sieht nun mein Code aus:
Java:
Aufgabe [] marr = new Aufgabe();
marr[0] = new Aufgabe(4, "Golf");
marr[1] = new Aufgabe(5, "Golf");
for (int i=0; i<marr.length; i++){
Syso(marr[i]);
Habe schon bevor ich deinen link für die googel suche erhalten habe schon danach gegoogelt komme aber nicht drauf. Muss mal in meine Java als erste Programmiersprache schauen ob ich dort was finde....
hmmmm. das heisst dass ich dort das angeben muss... bsp. die 4 die in einem String konvertiert werden muss? oder kann ich ihm es so beibringen dass er auf das array zugreifen soll und sich die, Werte/Parameter aus dem jeweiligen Array holen soll!?
interface Comparable... hast du das selber geschrieben? Das darfst du nicht machen. Das gibt es schon, du musst einfach das vorhandene implementieren..
Ändere auch noch von "implements Comparable<Object>" in "implements Comparable<Material>". In der compareTo-Methode änderst Du den Parametertyp von Object nach Material. Das casten auf Material entfällt dadurch und Deine Methode ist sehr viel typsicherer, was das Auftreten von ClassCastExceptions verhindert.
Und nach Strings sortieren ist ganz leicht. String implementiert nämlich selbst Comparable<String>. D.h. du holst Dir einfach die Namen und ruftst deren compareTo-Methode auf. Einzige Voraussetzung ist, dass die Namen nicht null sind. Falls doch, musst Du das prüfen und entsprechend reagieren. Die einfache Variante Deiner compareTo-Methode für die Sortierung nach Namen sieht damit so aus:
[Java]
public int compareTo(Material that) {
return this.name.compareTo(that.name);
}
[/Java]
Ok, Ok, es wird ClassCastException nur bei direktem Aufruf aus dem eigenen Code heraus verhindert. Ansonsten bitte die Warnings des Compilers beachten und möglichst nicht mit raw types arbeiten.