I've just committed a few utility/convenience methods as below: ListUtils: List removeAll(Collection collection, Collection remove) public static List retainAll(Collection collection, Collection retain) public static List unmodifiableListCopy(Collection collection)
CollectionUtils: Same as ListUtils, except returning a Collection MapUtils: public static Map unmodifiableMapCopy(Map map) Comment: It's a very common thing to want to keep a record of a collection's state. I've seen code peppered with the likes of: List copy = ListUtils.unmodifiableList(new ArrayList(originalList)); Whilst that may not seem to be too much of an inconvenience, the ArrayList constructor will automatically increase the size of the list by 10%, and that memory is obviously never used. The supplied implementation will create a new ArrayList of the correct size, call #addAll to populate the copy and then return the unmodfiable-decorated copy. Equivalent methods are supplied for MapUtils and CollectionUtils. The #removeAll and #retainAll impls are for when you want to obtain the product of these operations on a collection, but can't or don't want to modify the collection. E.g. if the collection is unmodifiable. An alternative is to make a copy of the collection, and then call #removeAll, but this isn't as efficent as the implementation provided. Any comments? >neil --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]