Welche ganz einfachen, allgemein verwendbaren Java-Klassen wurden eurer Meinung nach von Sun und Oracle einfach "vergessen"?
Mal der Versuch einer persönlichen Liste:
- Option<A> implements Iterable<A> (als Null-Ersatz, kann ein A enthalten)
- Pair<A,B> (enthält ein A und ein B)
- Triple<A,B,C> (enthält ein A, B und C)
- Either<A,B> (enthält entweder ein A oder ein B)
- ImmutableDate (unveränderliches Datum mit vernünftiger Schnittstelle)
- CharList implements List<Character> (Wrapper um StringBuilder):
Und schon gehen allerhand lustige Sachen:
Mal der Versuch einer persönlichen Liste:
- Option<A> implements Iterable<A> (als Null-Ersatz, kann ein A enthalten)
- Pair<A,B> (enthält ein A und ein B)
- Triple<A,B,C> (enthält ein A, B und C)
- Either<A,B> (enthält entweder ein A oder ein B)
- ImmutableDate (unveränderliches Datum mit vernünftiger Schnittstelle)
- CharList implements List<Character> (Wrapper um StringBuilder):
Java:
import java.util.AbstractList;
public class CharList extends AbstractList<Character> {
private StringBuilder sb;
public CharList() {
sb = new StringBuilder();
}
public CharList(String s) {
sb = new StringBuilder(s);
}
public CharList(char[] cs) {
sb = new StringBuilder(new String(cs));
}
@Override
public Character get(int i) {
return sb.charAt(i);
}
@Override
public Character set(int index, Character c) {
char result = sb.charAt(index);
sb.setCharAt(index,c);
return result;
}
@Override
public void add(int index, Character c) {
sb.insert(index, c);
}
@Override
public Character remove(int index) {
char result = sb.charAt(index);
sb.deleteCharAt(index);
return result;
}
@Override
public int size() {
return sb.length();
}
@Override
public String toString() {
return sb.toString();
}
@Override
public void clear() {
sb.setLength(0);
}
}
Und schon gehen allerhand lustige Sachen:
Java:
List<Character> list = new CharList("garbage");
Collections.shuffle(list);
System.out.println(list); //rabggae oder so...
Zuletzt bearbeitet: