Erzeuge eine ArrayList, die nur
String-Objekte aufnehmen kann. Fülle sie mit ein
paar Strings.
Laufe sie mit dem erweiterten for ab.
Implementiere die Klasse Box<T>.
Warum findet man bei der Klasse ArrayList in
der Methode T[] toArray(T[] a) nicht den Typ
E, sondern T?
Für Wörter aus einer Liste sollen deren Häufigkeiten festgehalten werden. Dazu
definieren wir eine Klasse WordCounter mit einer
Funktion update(String) und einer Funktion
clear(). Eine Funktion
getWordCount(String) soll dann zurückgeben, wie
oft das Wort bisher vorkam.
public class WordCounter
{
public void update( String s ) { }
public void clear() { }
int getWordCount( String s ) { return 0; }
}
Zum Testen schreibe:
WordCounter wc = new WordCounter();
wc.update( "Hallo" );
wc.update( "Welt" );
wc.update( "Hallo" );
System.out.println( wc.getWordCount("Hallo") ); // 2
System.out.println( wc.getWordCount("Welt") ); // 1
System.out.println( wc.getWordCount("NIX") ); // 0
Beschreibe alle Begriffe an einem kurzen Beispiel:
Um java.awt.Point-Objekte in ein
HashSet einsortieren zu können, müssen wir einen
externen Comparator definieren, da Punkte-Objekte
nicht Comparable sind. Schreibe einen mit
Point generisch deklarierten
Comparator, der den Abstand zum Nullpunkt (euklidisch oder in der Manhatten-Metrik)
als Kriterium verwendet.
Set<Point> set = new TreeSet<Point>( comparator ); set.add( new Point(2,3) ); set.add( new Point(9,9) ); set.add( new Point(3,2) ); set.add( new Point(1,1) ); System.out.println( set );
Die Sortierreihenfolge bei der Ausgabe soll etwa sein: (1,1), (2,3); (9,9).
Wird es bei folgenden Zeilen einen Compiler-Fehler geben? Wie erklärt sich das Verhalten?
Collection<?> list = new ArrayList<String>(); list.add( "Hallo Welt" );