On 19 November 2010 15:49, John Platts <john_pla...@hotmail.com> wrote: > > Here are improvements that I really want to see to Java Collection APIs: > - Addition of an equality comparator interface. > - An wrapper that wraps a java.util.Comparator as a equality comparator. > - Map and set classes that allow an equality comparator to be used instead of > the equals() method or identity comparisons > - New map and set interfaces that behave like the existing java.util.Map and > java.util.Set interfaces. Unlike the contract of the java.util.Map and > java.util.Set interfaces, the contract of the new map and set interfaces will > not require that o1 be considered to be equal to o2 when o1 != o2 and > o1.equals(o2) are both true. The new map and set interfaces will still > require that o1 be considered equal to o2 whenever o1 == o2 is true. > - New collection interfaces which define versions of search and removal > operations that take an additional equality comparator argument. This enables > search and removal operations to use an equality comparator to determine > equality instead of relying on the equals method, an identity comparison, or > the java.util.Comparator.compare method. > - Additional concurrent collection classes. Some of these classes will > require synchronized modification, while supporting thread-safe > unsynchronized access and concurrent iteration. > - Support for collections synchronized on a read-write lock. > - Addition of methods that iterates through the collection and invokes a > callback. This is useful in cases where the callback object can be > pre-allocated, since iteration using a java.util.Iterator object usually > requires an iterator to be allocated each time an iteration takes place. >
Feel free to post patches to add these features. Then they can be reviewed and maybe added to the JDK. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8