Set, - PowerPoint PPT Presentation

About This Presentation
Title:

Set,

Description:

... the number of associated key-value pairs in the map. ... Set keySet( ); //returns the set of keys in the map. Java.util.TreeMap implements java.util.Map. ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 14
Provided by: tcnj
Learn more at: https://owd.tcnj.edu
Category:
Tags: keys | set

less

Transcript and Presenter's Notes

Title: Set,


1
Set, TreeSet, TreeMap,
Comparable,
Comparator
2
Def The abstract data type set is a structure
that holds objects and satifies ARC Objects can
be added. Objects can be removed. It can be
determined if an object is
contained in the set.

As in the mathematical notion of a set, no
duplicate values are permitted in a set.
3
What is the primary difference between the adt
List and the adt Set? There is no ordering in a
set. That is, a class that implements the Set
interface does not contain a method get(index).
The java.util package contains two classes for
implementing binary search trees TreeSet
and TreeMap
4
TreeSet
Java.util.TreeSet is a class that implements the
interface Set. Some of the commonly used methods
in TreeSet are boolean add(Object
obj) boolean remove(Object obj) boolean
contains(Object obj) int size() Iterator
iterator() Object toArray()
5
  • When TreeSet.remove( ) and TreeSet.add( ) the
    binary search tree ordering property is
    preserved. The TreeSet iterator performs
    inorder traversals of the tree, delivering values
    in ascending order.
  • This class guarantees log (n) time cost for the
    basic operation remove(), add() and contains().
  • TreeSet contains a default constructor (with no
    arguments) to create an empty tree that will be
    sorted by the natural order of objects that are
    comparable.
  • TreeSet contains a constructor with one argument,
    Comparator c, to create an empty tree that will
    be sorted by the compare( ) method specified in
    the Comparator object, c, passed.

6
What is the difference between Comparable and
Comparator?

7
Comparable is an interface that contains one
required method in any class that implements it
compareTo(Object o ). This method must return a
negative integer, zero, or a positive integer
when this object is less than, equal to, or
greater than the specified object, o. The
implementor must also ensure that the relation is
transitive (x.compareTo(y)gt0
y.compareTo(z)gt0) implies x.compareTo(z)gt0. It is
strongly recommended, but not strictly required
that (x.compareTo(y)0) (x.equals(y)). Example
public int compareTo(Object o) return
((City)o.getPop( ) - getPop( )
8
Note Defining compareTo gives one way to compare
objects of your class, allowing sorting into
ascending order by such library methods as
Arrays.sort. However, for more general sorting,
such as in descending or or alphabetically,
another technique must be used implementation of
the interface Comparator.
9
  • Comparator requires two methods of its
    implementer compare( ) and equals( ).
  • Usually the equals( ) method does not need to be
    coded, because you can rely on the equals( )
    method inherited from Object.
  • Example of a class that implements Comparator
  • public class ComparatorForCities implements
    Comparator
  • public int compare (Object o1, Object o2)
  • String n1 ((City) o1).getName()
  • String n2 ((City) o2).getName()
  • return n1.compareToIgnoreCase(name2)

10
  • To use a comparator object, pass it to
    constructors or methods that take a Comparator
    argument, that is any class that implements the
    interface Comparator.
  • Example code fragment
  • ComparatorForCities cn new ComparatorForCities(
    )
  • City capitals
  • Arrays.sort (capitals, cn)
  • int result cn.compare(city1, city2)

11
  • Def A Map is an adt that associates keys with
    their values and finds a value for a given key.
    Commonly used methods in java.util.Map are
  • Object put (Object key, Object value) //adds key
    and associated value to the map, returning any
    value previously associated with key or null.
  • Object get (Object key) //returns value
    associated with key or null.
  • Boolean containsKey (Object key) //returns true
    if key is associated with some value, otherwise
    returns false.
  • Int size( ) //returns the number of associated
    key-value pairs in the map.
  • Set keySet( ) //returns the set of keys in the
    map.

12
  • Java.util.TreeMap implements java.util.Map.
  • TreeMap implements Map as a binary search tree
    ordered by keys and contains a default
    constructor, which requires the keys to be
    comparable, and a one argument (Comparator)
    constructor.
  • TreeMap does not contain an iterator method, but
    keySet( ) may be used to get the set of keys and
    then iterate over them.
  • Example
  • TreeMap map new TreeMap( )
    SomeType key

    OtherType value

    Set keys map.keySet( )
    Iterator
    iter keys.iterator( )
    while (itr.hasNext(
    ))
    key
    (SomeType)itr.next( )
    value
    (OtherType)map.get(key)

13
How is a TreeSet different from a TreeMap?
  • TreeMap is more general than TreeSet.
  • Although both implement binary search trees,
    TreeSet values are compared to each other, while
    in TreeMap no ordering is assumed for the values
    and the tree is arranged according to the order
    of the keys.
  • TreeSet (according to the Java API) is backed by
    an instance of TreeMap, which means it has a
    TreeMap field in it that does all the work.
  • It is often easier to use a TreeMap
Write a Comment
User Comments (0)
About PowerShow.com