Java got some basics very, very wrong. First-class object iteration, list comprehension, string manipulation...either these features are nonexistent or feature brutal syntax bordering on the hideous C++ container class verbosity.
I think the introduction of lambdas will ease the pain with the first two. That is, we can add weak syntactic support for first-class iteration and list comprehensions -- both are monadic features, and though Java can't express a general monad, it can bolt the monadic features on as a design pattern. So none of it will be pretty, but it'll be better than the current situation.