private int search(AnyObjectId objId) { int low = 0; int high = cnt; while (low < high) { int mid = (low + high) >>> 1; int cmp = objId.compareTo(notes[mid]); if (cmp < 0) high = mid; else if (cmp == 0) return mid; else low = mid + 1; } return -(low + 1); }
private int binarySearchLevelTwo(AnyObjectId objId, int levelOne) { final int[] data = names[levelOne]; int high = offset32[levelOne].length >>> 2; if (high == 0) return -1; int low = 0; do { final int mid = (low + high) >>> 1; final int mid4 = mid << 2; final int cmp; cmp = objId.compareTo(data, mid4 + mid); // mid * 5 if (cmp < 0) high = mid; else if (cmp == 0) { return mid; } else low = mid + 1; } while (low < high); return -1; }
/** {@inheritDoc} */ @Override public long findOffset(AnyObjectId objId) { final int levelOne = objId.getFirstByte(); byte[] data = idxdata[levelOne]; if (data == null) return -1; int high = data.length / (4 + Constants.OBJECT_ID_LENGTH); int low = 0; do { final int mid = (low + high) >>> 1; final int pos = idOffset(mid); final int cmp = objId.compareTo(data, pos); if (cmp < 0) high = mid; else if (cmp == 0) { int b0 = data[pos - 4] & 0xff; int b1 = data[pos - 3] & 0xff; int b2 = data[pos - 2] & 0xff; int b3 = data[pos - 1] & 0xff; return (((long) b0) << 24) | (b1 << 16) | (b2 << 8) | (b3); } else low = mid + 1; } while (low < high); return -1; }
private int search(AnyObjectId objId) { int low = 0; int high = cnt; while (low < high) { int mid = (low + high) >>> 1; int cmp = objId.compareTo(notes[mid]); if (cmp < 0) high = mid; else if (cmp == 0) return mid; else low = mid + 1; } return -(low + 1); }
private int search(AnyObjectId objId) { int low = 0; int high = cnt; while (low < high) { int mid = (low + high) >>> 1; int cmp = objId.compareTo(notes[mid]); if (cmp < 0) high = mid; else if (cmp == 0) return mid; else low = mid + 1; } return -(low + 1); }
private int binarySearchLevelTwo(AnyObjectId objId, int levelOne) { final int[] data = names[levelOne]; int high = offset32[levelOne].length >>> 2; if (high == 0) return -1; int low = 0; do { final int mid = (low + high) >>> 1; final int mid4 = mid << 2; final int cmp; cmp = objId.compareTo(data, mid4 + mid); // mid * 5 if (cmp < 0) high = mid; else if (cmp == 0) { return mid; } else low = mid + 1; } while (low < high); return -1; }
private int binarySearchLevelTwo(final AnyObjectId objId, final int levelOne) { final int[] data = names[levelOne]; int high = offset32[levelOne].length >>> 2; if (high == 0) return -1; int low = 0; do { final int mid = (low + high) >>> 1; final int mid4 = mid << 2; final int cmp; cmp = objId.compareTo(data, mid4 + mid); // mid * 5 if (cmp < 0) high = mid; else if (cmp == 0) { return mid; } else low = mid + 1; } while (low < high); return -1; }
@Override public long findOffset(final AnyObjectId objId) { final int levelOne = objId.getFirstByte(); byte[] data = idxdata[levelOne]; if (data == null) return -1; int high = data.length / (4 + Constants.OBJECT_ID_LENGTH); int low = 0; do { final int mid = (low + high) >>> 1; final int pos = idOffset(mid); final int cmp = objId.compareTo(data, pos); if (cmp < 0) high = mid; else if (cmp == 0) { int b0 = data[pos - 4] & 0xff; int b1 = data[pos - 3] & 0xff; int b2 = data[pos - 2] & 0xff; int b3 = data[pos - 1] & 0xff; return (((long) b0) << 24) | (b1 << 16) | (b2 << 8) | (b3); } else low = mid + 1; } while (low < high); return -1; }
/** {@inheritDoc} */ @Override public long findOffset(AnyObjectId objId) { final int levelOne = objId.getFirstByte(); byte[] data = idxdata[levelOne]; if (data == null) return -1; int high = data.length / (4 + Constants.OBJECT_ID_LENGTH); int low = 0; do { final int mid = (low + high) >>> 1; final int pos = idOffset(mid); final int cmp = objId.compareTo(data, pos); if (cmp < 0) high = mid; else if (cmp == 0) { int b0 = data[pos - 4] & 0xff; int b1 = data[pos - 3] & 0xff; int b2 = data[pos - 2] & 0xff; int b3 = data[pos - 1] & 0xff; return (((long) b0) << 24) | (b1 << 16) | (b2 << 8) | (b3); } else low = mid + 1; } while (low < high); return -1; }
/** * Search for an object in the index. * * @param objId * the object to locate. * @return offset of the object in the corresponding chunk; -1 if not found. */ final int findOffset(AnyObjectId objId) { int hi, lo; if (fanout != null) { int fb = objId.getFirstByte(); lo = fb == 0 ? 0 : fanout[fb - 1]; hi = fanout[fb]; } else { lo = 0; hi = count; } while (lo < hi) { final int mid = (lo + hi) >>> 1; final int cmp = objId.compareTo(indexBuf, idPosition(mid)); if (cmp < 0) hi = mid; else if (cmp == 0) return getOffset(mid); else lo = mid + 1; } return -1; }
/** * Search for an object in the index. * * @param objId * the object to locate. * @return offset of the object in the corresponding chunk; -1 if not found. */ final int findOffset(AnyObjectId objId) { int hi, lo; if (fanout != null) { int fb = objId.getFirstByte(); lo = fb == 0 ? 0 : fanout[fb - 1]; hi = fanout[fb]; } else { lo = 0; hi = count; } while (lo < hi) { final int mid = (lo + hi) >>> 1; final int cmp = objId.compareTo(indexBuf, idPosition(mid)); if (cmp < 0) hi = mid; else if (cmp == 0) return getOffset(mid); else lo = mid + 1; } return -1; }