src/share/classes/java/util/TreeMap.java

Print this page

        

*** 1054,1068 **** public E first() { return m.firstKey(); } public E last() { return m.lastKey(); } public Comparator<? super E> comparator() { return m.comparator(); } public E pollFirst() { Map.Entry<E,Object> e = m.pollFirstEntry(); ! return e == null? null : e.getKey(); } public E pollLast() { Map.Entry<E,Object> e = m.pollLastEntry(); ! return e == null? null : e.getKey(); } public boolean remove(Object o) { int oldSize = size(); m.remove(o); return size() != oldSize; --- 1054,1068 ---- public E first() { return m.firstKey(); } public E last() { return m.lastKey(); } public Comparator<? super E> comparator() { return m.comparator(); } public E pollFirst() { Map.Entry<E,Object> e = m.pollFirstEntry(); ! return (e == null) ? null : e.getKey(); } public E pollLast() { Map.Entry<E,Object> e = m.pollLastEntry(); ! return (e == null) ? null : e.getKey(); } public boolean remove(Object o) { int oldSize = size(); m.remove(o); return size() != oldSize;
*** 1194,1220 **** /** * Test two values for equality. Differs from o1.equals(o2) only in * that it copes with {@code null} o1 properly. */ ! final static boolean valEquals(Object o1, Object o2) { return (o1==null ? o2==null : o1.equals(o2)); } /** * Return SimpleImmutableEntry for entry, or null if null */ static <K,V> Map.Entry<K,V> exportEntry(TreeMap.Entry<K,V> e) { ! return e == null? null : new AbstractMap.SimpleImmutableEntry<K,V>(e); } /** * Return key for entry, or null if null */ static <K,V> K keyOrNull(TreeMap.Entry<K,V> e) { ! return e == null? null : e.key; } /** * Returns the key corresponding to the specified Entry. * @throws NoSuchElementException if the Entry is null --- 1194,1220 ---- /** * Test two values for equality. Differs from o1.equals(o2) only in * that it copes with {@code null} o1 properly. */ ! static final boolean valEquals(Object o1, Object o2) { return (o1==null ? o2==null : o1.equals(o2)); } /** * Return SimpleImmutableEntry for entry, or null if null */ static <K,V> Map.Entry<K,V> exportEntry(TreeMap.Entry<K,V> e) { ! return (e == null) ? null : new AbstractMap.SimpleImmutableEntry<K,V>(e); } /** * Return key for entry, or null if null */ static <K,V> K keyOrNull(TreeMap.Entry<K,V> e) { ! return (e == null) ? null : e.key; } /** * Returns the key corresponding to the specified Entry. * @throws NoSuchElementException if the Entry is null
*** 1235,1245 **** private static final Object UNBOUNDED = new Object(); /** * @serial include */ ! static abstract class NavigableSubMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, java.io.Serializable { /** * The backing map. */ final TreeMap<K,V> m; --- 1235,1245 ---- private static final Object UNBOUNDED = new Object(); /** * @serial include */ ! abstract static class NavigableSubMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, java.io.Serializable { /** * The backing map. */ final TreeMap<K,V> m;
*** 1410,1424 **** throw new IllegalArgumentException("key out of range"); return m.put(key, value); } public final V get(Object key) { ! return !inRange(key)? null : m.get(key); } public final V remove(Object key) { ! return !inRange(key)? null : m.remove(key); } public final Map.Entry<K,V> ceilingEntry(K key) { return exportEntry(subCeiling(key)); } --- 1410,1424 ---- throw new IllegalArgumentException("key out of range"); return m.put(key, value); } public final V get(Object key) { ! return !inRange(key) ? null : m.get(key); } public final V remove(Object key) { ! return !inRange(key) ? null : m.remove(key); } public final Map.Entry<K,V> ceilingEntry(K key) { return exportEntry(subCeiling(key)); }
*** 1557,1567 **** Map.Entry<K,V> entry = (Map.Entry<K,V>) o; K key = entry.getKey(); if (!inRange(key)) return false; TreeMap.Entry<K,V> node = m.getEntry(key); ! if (node!=null && valEquals(node.getValue(),entry.getValue())){ m.deleteEntry(node); return true; } return false; } --- 1557,1568 ---- Map.Entry<K,V> entry = (Map.Entry<K,V>) o; K key = entry.getKey(); if (!inRange(key)) return false; TreeMap.Entry<K,V> node = m.getEntry(key); ! if (node!=null && valEquals(node.getValue(), ! entry.getValue())) { m.deleteEntry(node); return true; } return false; }
*** 1722,1732 **** return new AscendingSubMap(m, fromStart, lo, loInclusive, false, toKey, inclusive); } ! public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive){ if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); return new AscendingSubMap(m, false, fromKey, inclusive, toEnd, hi, hiInclusive); --- 1723,1733 ---- return new AscendingSubMap(m, fromStart, lo, loInclusive, false, toKey, inclusive); } ! public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive) { if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); return new AscendingSubMap(m, false, fromKey, inclusive, toEnd, hi, hiInclusive);
*** 1803,1813 **** return new DescendingSubMap(m, false, toKey, inclusive, toEnd, hi, hiInclusive); } ! public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive){ if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); return new DescendingSubMap(m, fromStart, lo, loInclusive, false, fromKey, inclusive); --- 1804,1814 ---- return new DescendingSubMap(m, false, toKey, inclusive, toEnd, hi, hiInclusive); } ! public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive) { if (!inRange(fromKey, inclusive)) throw new IllegalArgumentException("fromKey out of range"); return new DescendingSubMap(m, fromStart, lo, loInclusive, false, fromKey, inclusive);
*** 2141,2151 **** size--; // If strictly internal, copy successor's element to p and then make p // point to successor. if (p.left != null && p.right != null) { ! Entry<K,V> s = successor (p); p.key = s.key; p.value = s.value; p = s; } // p has 2 children --- 2142,2152 ---- size--; // If strictly internal, copy successor's element to p and then make p // point to successor. if (p.left != null && p.right != null) { ! Entry<K,V> s = successor(p); p.key = s.key; p.value = s.value; p = s; } // p has 2 children