Normally you would build a B+Tree from lower-level data structures.
A map is normally implemented as a Tree itself, so if you already have maps why are you implementing a B+Tree?
Even using a list is a bad fit... a B+ page should be implemented using only arrays (or even better raw bytes in which you allocate arrays).