java port of Underscore.js