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" );