Currently G1 younggen and Parallel youngen use PartialArrayStates to manage splitting the processing of large object arrays into parallelizable chunks. We would like other kinds of collection to use that mechanism too.
The amount of code for doing so not trivial in size (>50-60 lines) or complexity, and is pretty nearly identical for each of the current users. And some of the differences may be unintentional. New clients would also need to have their own copies. It would be very helpful for adoption by new clients and long-term maintenance if this could be packaged up in some helper classes and functions.