package yuku.alkitab.model; import java.util.Arrays; public class PericopeIndex { public static final String TAG = PericopeIndex.class.getSimpleName(); public int[] aris; public int[] offsets; public int findFirst(int ariMin, int ariMax) { int x = Arrays.binarySearch(aris, ariMin); // x == -1 (-0-1) kalo ariMin == 0 /* * Contoh xari * [0] 0x000101 * [1] 0x000125 * [2] 0x000201 * [3] 0x000308 * * Cari 0x000000 -> insert di 0 -> x == -1 -> pengennya 0, maka -(-1 +1) * Cari 0x000100 -> insert di 0 -> x == -1 * Cari 0x000200 -> insert di 2 -> x == -3 -> pengennya 2, maka -(-3 +1) * Cari 0x000201 -> ketemu di 2 -> x == 2 -> pengennya 2, maka 2 * Cari 0x000300 -> insert di 3 -> x == -4 * Cari 0x000400 -> insert di 4 -> x == -5 -> pengennya 4, maka -(-5 +1) */ int res; if (x < 0) res = -(x + 1); else res = x; if (res >= aris.length) return -1; int ari = aris[res]; if (ari < ariMax) { return res; } return -1; } public int getAri(int index) { if (index >= aris.length) { return 0x00ffffff; // EOF } return aris[index]; } }