1 / 14

Tree Maps and Tree Sets

Tree Maps and Tree Sets. The JCF Binary Tree classes. Map definition review. A map is a collection in which each Entry element has two parts: a unique key part a value part (which may not be unique) Each unique key “maps” to a corresponding value

lewis
Télécharger la présentation

Tree Maps and Tree Sets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tree Maps and Tree Sets The JCF Binary Tree classes CS-2851Dr. Mark L. Hornick

  2. Map definition review • A map is a collection in which each Entry element has two parts: • a uniquekey part • a value part (which may not be unique) • Each unique key “maps” to a corresponding value • Example: a map of students, in which each key is the (unique) student ID, and each (non-unique?) value is a reference to a student object. Entry key value CS-2851Dr. Mark L. Hornick

  3. TreeMap :The JCF implementation of a Binary Tree • TreeMap stores a Map in a red-black tree, ordered by (unique) keys public class TreeMap<K, V> implements SortedMap<K, V> extends AbstractMap<K, V> • Example:TreeMap<Integer, Student> students;//Integer: unique student ID number//Student: student object CS-2851Dr. Mark L. Hornick

  4. JCF TreeMap methods • Implements the Map interface • e.g. no iterator() method • But Map does define • Put(k,v) – insert a key/value entry into the Binary Tree • Remove(k) – remove the entry with the specified key • containsKey(k) – search for the entry with key k • containsValue(v) – search for an entry with value v • Could be more than one entry; each with a unique key • size(), equals(), clear() CS-2851Dr. Mark L. Hornick

  5. The put() method is used to insert elements public V put (K key, V value) /** * Ensures that there is an element in this TreeMap object * with the specified key&value pair. If this TreeMap * object had an element with the specified key before * this method was called, the previous value associated * with that key has been returned. Otherwise, null * has been returned. * TheworstTime (n) is O (log n). * * @param key – the specified key * @param value – the specified value * @return the previous value associated with key, if * there was such a mapping; otherwise, null. * */ CS-2851Dr. Mark L. Hornick

  6. The containsKey() method determines if the TreeMap contains an entry with a specified unique key publicboolean containsKey (Object key) /** * Determines if this TreeMap object contains a mapping * with a specified key. * The worstTime (n) isO (log n). WHY??? * * @param key – the specified key * * @return true – if this TreeMap object contains a * mapping with the specified key; otherwise, false. */ CS-2851Dr. Mark L. Hornick

  7. The containsValue() method determines if the TreeMap contains an entry with a specified value publicboolean containsValue (Object value) /** * Determines if this TreeMap object contains a mapping * with a specified value. * The worstTime (n) isO (n). WHY??? * * @param value – the specified value * * @return true – if this TreeMap object contains * at least one mapping with the specified value; * otherwise, false. */ CS-2851Dr. Mark L. Hornick

  8. Some other Map interface methods implemented in TreeMap • public V remove (Object key) • Removes an entry with the specified key • Returns the associated value • public V get (Object key) • Gets the associated value of an entry with the specified key • public Set entrySet() • Returns a Set object reference • Which can be iterated CS-2851Dr. Mark L. Hornick

  9. The two TreeMap constructors(required by SortedMap) public TreeMap( ) { // comparator = null; key class implements // Comparable interface } // default constructor public TreeMap (Comparator<? super K> c) { comparator = c; // c implements Comparator interface } // one-parameter constructor CS-2851Dr. Mark L. Hornick

  10. The Comparator interface allows a user of a class to override how that class performs comparisons of keys Interface Comparator<T> { // Compares its two arguments for order.  int compare(T o1, T o2); // Indicates whether some other object is "equal to" this Comparator boolean equals(Object obj);} • For example, the String objects can be ordered by the length of the string instead of lexicographically CS-2851Dr. Mark L. Hornick

  11. Tree Sets CS-2851Dr. Mark L. Hornick

  12. A TreeSet is an ordered Collection in which duplicate elements are not allowed • The TreeSet class has all of the methods in the Collection interface • add, remove, size, contains, … • plus toString (inherited from AbstractCollection) publicclass TreeSet<E> extends AbstractSet<E> implements SortedSet<E>, Cloneable, java.io.Serializable { CS-2851Dr. Mark L. Hornick

  13. The TreeSet constructors public TreeSet( ) // assumes elements ordered by // Comparable interface public TreeSet (Comparator<? super E> c) // assumes elements ordered // by Comparator c public TreeSet (Collection<? extends E> c) // copy constructor; assumes elements ordered // by Comparable interface CS-2851Dr. Mark L. Hornick

  14. The TreeSet class is implemented with TreeMap in which all of the values are the same • The TreeSet elements are the keys in the underlying map • A dummy object is associated with the value in the underlying map • All the work is done by the underlying map /** * Initializes this TreeSet object to be empty. public TreeSet( ) { this (new TreeMap<E, Object>( )); } // default constructor CS-2851Dr. Mark L. Hornick

More Related