MCPcopy Create free account
hub / github.com/codenameone/CodenameOne / find

Method find

Ports/CLDC11/src/java/util/TreeMap.java:3892–3933  ·  view source on GitHub ↗
(Object keyObj)

Source from the content-addressed store, hash-verified

3890 }
3891
3892 @SuppressWarnings("unchecked")
3893 Entry<K, V> find(Object keyObj) {
3894 java.lang.Comparable<K> object = comparator == null ? toComparable((K) keyObj)
3895 : null;
3896 K keyK = (K) keyObj;
3897 Node<K, V> node = root;
3898 while (node != null) {
3899 K[] keys = node.keys;
3900 int left_idx = node.left_idx;
3901 int result = cmp(object, keyK, keys[left_idx]);
3902 if (result < 0) {
3903 node = node.left;
3904 } else if (result == 0) {
3905 return createEntry(node,left_idx);
3906 } else {
3907 int right_idx = node.right_idx;
3908 if (left_idx != right_idx) {
3909 result = cmp(object, keyK, keys[right_idx]);
3910 }
3911 if (result > 0) {
3912 node = node.right;
3913 } else if (result == 0) {
3914 return createEntry(node,right_idx);
3915 } else { /* search in node */
3916 int low = left_idx + 1, mid = 0, high = right_idx - 1;
3917 while (low <= high) {
3918 mid = (low + high) >> 1;
3919 result = cmp(object, keyK, keys[mid]);
3920 if (result > 0) {
3921 low = mid + 1;
3922 } else if (result == 0) {
3923 return createEntry(node,mid);
3924 } else {
3925 high = mid - 1;
3926 }
3927 }
3928 return null;
3929 }
3930 }
3931 }
3932 return null;
3933 }
3934
3935 Entry<K, V> createEntry(Node<K,V> node, int index) {
3936 TreeMap.Entry<K, V> entry = new TreeMap.Entry<K, V>(node.keys[index], node.values[index]);

Callers

nothing calls this directly

Calls 3

toComparableMethod · 0.95
cmpMethod · 0.95
createEntryMethod · 0.95

Tested by

no test coverage detected