Sets and Maps

advertisement
Sets and Maps
Starring: keySet
Co-Starring: Collections
1
Purpose:
In this lecture we discus two interfaces,
the Set and the Map and sets up our
discussion of HashSet, HashMap,
TreeMap & TreeSet
2
Resources:
Barrons Chapter 11 p.368 (Only
Collections, Sets & Maps p.368-369 &
p.377 & p.382)
Java Essentials Study Guide Chapter
17 p.303
Java Fundanentals, Lambert Chapter 17
p.567
3
Handouts:
1.CreateMySet.java
2.Map-Key-Value.java
3.Sets Maps and the ADTs.doc
4.set map interfaces.Doc
4
Intro:
Two ADT’s Set and Map provide rules
for creating Data Structures that
conform to specific behaviors
5
We are responsible for understanding
the requirements of these two
interfaces and then, in the next few
lectures, we will discuss and work with
the following implementations of these
interfaces:
HashSet
HashMap
TreeMap
TreeSet
6




In this Lecture we will discuss:
The Collections API
Set Interface
Map Interface
7
Collections:
Collections are simply a group of
objects
There are collections that permit
duplicate objects while others do not
Some collections order the objects
while others do not
8
A collection data type has the following
behaviors:



insert elements
remove elements
iterate over the elements in the
collection
9
10
Set:
Set is a collection
Set is not ordered
Set does NOT allow duplicate elements
Set may have a null element
11
Insert a unique object / element into the
Set
Remove an object / element from the Set
Determine if and object / element is in the
Set
Use the Iterator to traverse the elements in
the Set
12
Hashset (hash table) and TreeSet (BST)
implement the Set Interface
interface java.util.Set
Required methods
boolean add(E o) // Generic
adds element if unique otherwise leaves
set unchanged
13
boolean contains(Object x)

determines if a given object is an
element of the set
boolean remove(Object x)

removes the element from the set or
leaves set unchanged
int size( )

number of elements in the set
Iterator <E> iterator( )

allows for set traversal
14
Map:
Map is not a real collection, they Produce
Collections
Maps keys to values
Map does NOT allow duplicate elements
as each Key in a Map has only one (a
unique) Value
However, different Keys can map to the
same object (value)
15
The Key and the Value can be any object
Insert a key / value pair into a Map
Obtain a value thru its Key
Determine if a Target Key is in the Map
16
Traverse the elements of the Map using
the keySet method
Iterate thru the Map elements (iterate
using the Keys)
The TreeMap and the HashMap implement
the Map Interface
interface java.util.Map (AB only)
17
Required methods:
Object put(Object key, Object value)
Associates a Value with a Key and places
this pair into the Map
REPLACES a prior value if the Key already
is Mapped to a value
Returns the PREVIOUS Key associated
value or NULL if no prior mapping exists
18
Object get(Object key)
Returns the value associated with a Key
OR NULL if no map exists or the Key does
map to a NULL
Object remove (Object key)
Removes the map to this Key and returns
its associated value OR returns NULL if no
map existed or mapping was to NULL
19
boolean containsKey(Object key)
True if there is a key / value map
otherwise false
int size( )
Returns the number key / value mappings
Set<E> keySet( )
Retuns the Set of keys in the map
20
The keySet produces a Set of keys from
which we can visit all of the elements of a
HashMap or a TreeMap
We can visit all of the values (elements) by
iterating over the key Set that is returned
from the call to the Map’s keySet method
21
The following class contains Key / Value
elements
Student ID is the Key & the Name is the
Value
22
public class Student
{
Integer id;
String name;
public Student (int i, String n)
{
id = new Integer(i);
name = n;
}
public Integer getId()
{
return id;
}
public String getName()
{
return name;
}
public String toString()
{
return id.toString() + " , " + name;
}
}
23
 Illustration of a Map using the HashMap class:
Map stuffMap = new HashMap();
myStuff[] ms = new Student[5];
ms[0] = new Student(21,"Farrell");
ms[1] = new Student (31,"Castro");
ms[2] = new Student (11,"Defazio");
ms[3] = new Student (61,"Zegers");
ms[4] = new Student (86,"Rogers");
for (int t=0; t < 5; t++)
{
stuffMap.put(ms[t].getId(), ms[t]);
}
for (int t=0; t < 5; t++)
{
myStuff x = (Student)stuffMap.get(ms[t].getId());
System.out.println(x.toString());
}
24
MAP accepts "elements" as 2 separate
objects, a key and the data
A MAP ADT must conform to the following:
Put Associates the specified value with
the specified key in this map If the map
previously contained a mapping for this
key, the old value is replaced.
25
Get -- Returns the value to which this map
maps the specified key
Remove -- Removes the mapping for this
key from this map if present
26
Containskey - Returns true if this map
contains a mapping for the specified key
Keyset - Returns a set view of the keys
contained in this map.
27
AP AB Subset Requirements:
Understand the requirements, restrictions
and behaviors of the Set and Map ADT’s
You Will Not be required to implement the
Set or Map Interface
But you WILL be required to work with the
HashSet , TreeSet , HashMap & TreeMap
(Discussed in Next Lecture)
28
Project:
Classes
Create Your Own Set and Map
29
NO TEST FOR THIS
LECTURE !!!
30
Download