X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fandroid%2FContainerHelpers.java;h=26bd1422d82d19c6ddf3e08a8de560205ced095a;hb=881c6a099be11108b04ff7446204dfc0623fb0b2;hp=cae77b59095d95023c2dcc194cb12833324fa75d;hpb=d1e9d0331c7bd5b73130f63f5b1447a05f166549;p=jalview.git diff --git a/src/jalview/ext/android/ContainerHelpers.java b/src/jalview/ext/android/ContainerHelpers.java index cae77b5..26bd142 100644 --- a/src/jalview/ext/android/ContainerHelpers.java +++ b/src/jalview/ext/android/ContainerHelpers.java @@ -16,12 +16,22 @@ package jalview.ext.android; * limitations under the License. */ +/* + * Copied to Jalview September 2016. + * Only the members of this class required for SparseIntArray were copied. + * Change Log: + * Sep 2016: Method binarySearch(short[] array, int size, short value) added to support + * SparseShortArray. + * Jan 2017: EMPTY_DOUBLES added + */ class ContainerHelpers { static final boolean[] EMPTY_BOOLEANS = new boolean[0]; static final int[] EMPTY_INTS = new int[0]; + static final double[] EMPTY_DOUBLES = new double[0]; + static final long[] EMPTY_LONGS = new long[0]; static final Object[] EMPTY_OBJECTS = new Object[0]; @@ -74,4 +84,29 @@ class ContainerHelpers } return ~lo; // value not present } + + // This is Arrays.binarySearch(), but doesn't do any argument validation. + static int binarySearch(short[] array, int size, short value) + { + int lo = 0; + int hi = size - 1; + while (lo <= hi) + { + final int mid = (lo + hi) >>> 1; + final short midVal = array[mid]; + if (midVal < value) + { + lo = mid + 1; + } + else if (midVal > value) + { + hi = mid - 1; + } + else + { + return mid; // value found + } + } + return ~lo; // value not present + } }