It seems this may have been done already: have you looked at Clojure data structures implementations? Most, e.g vector, use a 32-branching factor with constant access/upate time. Clojure data types are all accessible from Java.
Check it out:
http://clojure.org/reference/data_structures#Vectors