Generics Array

Habs hinbekommen.....

Java:
public String toString(){
	 	 StringBuffer sb = new StringBuffer();
	 	 String speicherWert;
	 	 for(T element : initialContents){
	 	 	 sb.append(element);
	 	 	 sb.append(" ");
	 	 }

	 	 speicherWert=sb.toString();
	 	 String[] woerter = speicherWert.split("\\W+");
	 	 Arrays.sort(woerter);
        
	 	 int zaehler = 1;
	 	 String wort = woerter[0];
	 	 StringBuffer ab = new StringBuffer();
	 	 String rueckgabe;
	 	 for (int i = 1; i < woerter.length; ++i) {
	 	 	 if (!woerter[i].equals(wort)) {
	 	 	 	 ab.append(wort);
	 	 	 	 ab.append("("+zaehler+")"+" ");
	 	 	 	 wort = woerter[i];
	 	 	 	 zaehler = 1;
	 	 	 } else {
	 	 	 	 ++zaehler;
	 	 	 }
	 	 }
	 	 ab.append(wort);
	 	 ab.append("("+zaehler+")");
	 	 rueckgabe = ab.toString();
	 	 return " "+rueckgabe;

	 }

Gibt es ne Möglichkeit, das ganze als ein Knoten zu programmieren?
 
Java:
for(T element : initialContents){
             sb.append(element);
             sb.append(" ");
         }
 
         speicherWert=sb.toString();
         String[] woerter = speicherWert.split("\\W+");
         Arrays.sort(woerter);

Findest du nicht, dass das ein wenig zu viel ist? ;)
Nur mal zum Verständnis, du baust aus einem Array einen String um dann aus diesem String wieder ein Array zu machen, welches du sortieren kannst?! OK, ich sehe ein, dass man in die Richtung geht, weil hier nicht sichergestellt ist, dass T von sich aus sortierbar ist (sonst würde Arrays.sort(initialContents) reichen), aber warum machst du woerter[] nicht einfach von der gleichen Größe und fügst da die toString-Werte ein?


Edit: Worauf ich im großen und Ganzen hinaus will ist folgendes...
Deine Aufgabe ist mit Generics zu arbeiten, schön und gut, jedoch finde ich das schon alleine von deinem Lehrer ziemlich dumm die "Testklasse" nur mit Strings zu erstellen, denn T könnte alles sein. Und auf diese Weise weißt du nicht, was die einzelnen Elemente bei toString() zurückgeben... Beispiel:
Angenommen du bleibst bei deiner Variante mit dem Split... Nun hast du eventuell eine Datenbank mit Kunden (eigene Klasse), ein Kunde hat einen Vor- und einen Nachnamen, welche von der toString-Methode zurückgeliefert werden und, ganz wichtig, er enthält ein Leerzeichen dazwischen. Schon hat dein Stringbuffer mehr Token, als wie du es eigentlich möchtest. Verstehst du, was ich meine?
 
Zuletzt bearbeitet:
Zurück