Nit: prefer a manual ArrayList iteration, since that'll save an iterator from being allocated? See this post for a decent idiom:
https://plus.google.com/u/0/106557483623231970995/posts/UUeNBypdumc