While it’s something I’ve been intending to do for quite a while now, I’ve finally managed to actually start using the Guava Libraries. This is a superset project which includes the Google Collections libraries, which are a huge improvement over the traditional J2SE Collections API.
It allows for very quick construction of collections objects: e.g.
final List empty = Lists.newArrayList(); final List populated = Lists.newArrayList("a", "b", "c"); final Map<Integer,MyThing> myMap = ImmutableMap.of(1, object1, 2, object2, 3, object3); |
How about functions on lists?
final List spamList = Lists.transform(customers, new Function<Customer,EmailAddress>() { public EmailAddress apply(final Customer customer) { return customer.getEmail(); }); |
There is also a whole lot of other good stuff included, for I/O, Primitives utilities, String manipulation, Networking and concurrency.
Here is a link to some good resources.
Also, I just wanted to link to this article on JSR-310, which is the API that has arisen out of the very excellent Joda Date/Time library, which I endorse and use very heavily.