Here you can find the source of addSplits(TreeSet
private static void addSplits(TreeSet<byte[]> splitKeys, byte[] prefix, int splitBits)
//package com.java2s; /*// w w w. j a v a2s .c o m * Copyright 2016 Merck Sharp & Dohme Corp. a subsidiary of Merck & Co., * Inc., Kenilworth, NJ, USA. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.Arrays; import java.util.TreeSet; public class Main { private static void addSplits(TreeSet<byte[]> splitKeys, byte[] prefix, int splitBits) { if (splitBits == 0) return; if (splitBits < 0 || splitBits > 16) throw new IllegalArgumentException( "Illegal nunmber of split bits"); final int splitStep = 1 << (16 - splitBits); for (int i = splitStep; i <= 0xFFFF; i += splitStep) { byte bb[] = Arrays.copyOf(prefix, prefix.length + 2); bb[prefix.length] = (byte) ((i >> 8) & 0xff); bb[prefix.length + 1] = (byte) (i & 0xff); splitKeys.add(bb); } } }