@@ -60,6 +60,7 @@ public class JImmutableBtreeList<T>
6060 implements JImmutableRandomAccessList <T >
6161{
6262 private static final JImmutableBtreeList <Object > EMPTY = new JImmutableBtreeList <>(BtreeEmptyNode .of ());
63+ private static final int BUILDER_CHILDREN_PER_NODE = Math .max (BtreeNode .MIN_CHILDREN , BtreeNode .MAX_CHILDREN - 2 );
6364
6465 private final BtreeNode <T > root ;
6566
@@ -96,9 +97,9 @@ public static <T> JImmutableBtreeList<T> of(@Nonnull Indexed<? extends T> values
9697 remaining = 0 ;
9798 offset = nodeCount ;
9899 } else {
99- node = BtreeLeafNode .of (values , offset , offset + BtreeNode . MIN_CHILDREN );
100- remaining -= BtreeNode . MIN_CHILDREN ;
101- offset += BtreeNode . MIN_CHILDREN ;
100+ node = BtreeLeafNode .of (values , offset , offset + BUILDER_CHILDREN_PER_NODE );
101+ remaining -= BUILDER_CHILDREN_PER_NODE ;
102+ offset += BUILDER_CHILDREN_PER_NODE ;
102103 }
103104 nodes .add (node );
104105 }
@@ -116,9 +117,9 @@ public static <T> JImmutableBtreeList<T> of(@Nonnull Indexed<? extends T> values
116117 remaining = 0 ;
117118 offset = nodeCount ;
118119 } else {
119- node = BtreeBranchNode .of (indexed , offset , offset + BtreeNode . MIN_CHILDREN );
120- remaining -= BtreeNode . MIN_CHILDREN ;
121- offset += BtreeNode . MIN_CHILDREN ;
120+ node = BtreeBranchNode .of (indexed , offset , offset + BUILDER_CHILDREN_PER_NODE );
121+ remaining -= BUILDER_CHILDREN_PER_NODE ;
122+ offset += BUILDER_CHILDREN_PER_NODE ;
122123 }
123124 nodes .set (branchCount , node );
124125 branchCount += 1 ;
0 commit comments