csci 143 sets maps n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CSci 143 Sets & Maps PowerPoint Presentation
Download Presentation
CSci 143 Sets & Maps

Loading in 2 Seconds...

play fullscreen
1 / 17

CSci 143 Sets & Maps - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

CSci 143 Sets & Maps. Adapted from Marty Stepp, University of Washington http://www.cs.washington.edu/143/. Exercise. Write a program that counts the number of unique words in a large text file (say, Moby Dick or the King James Bible). Store the words in a collection

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

CSci 143 Sets & Maps


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
csci 143 sets maps

CSci 143Sets & Maps

Adapted from Marty Stepp, University of Washington

http://www.cs.washington.edu/143/

exercise
Exercise
  • Write a program that counts the number of unique words in a large text file (say, Moby Dick or the King James Bible).
    • Store the words in a collection
    • Report the number of unique words
    • Allow the user to search for a word, and report whether or not the word occurred
  • What collection would you use?
slide3
Sets

"the"

"of"

"if"

"to"

"down"

"from"

"by"

"she"

"you"

"in"

set.contains("to")

true

"him"

"why"

set.contains("be")

false

set

  • Set - a collection of unique values (no duplicates)
    • Allowed operations: add, remove, search (contains)
    • No indexes
    • Order is unimportant
set implementation
Set implementation
  • in Java, sets implement the Set interface in java.util
  • HashSet and TreeSet classes implement Set
    • HashSet
      • implemented using a "hash table" array
      • very fast
      • elements are stored in unpredictable order
    • TreeSet
      • implemented using a "binary search tree“
      • pretty fast
      • elements are stored in sorted order
set methods
Set methods

List<String> list = new ArrayList<String>();

...

Set<Integer> set = new HashSet<Integer>();

Set<String> set2 = new HashSet<String>(list);

  • can construct an empty set, or one based on another collection
set operations
Set operations

addAll

retainAll

removeAll

sets and ordering
Sets and ordering
  • Sets do not use indexes; you cannot get element i
  • HashSet : elements are stored in an unpredictable order

Set<String> names = new HashSet<String>();

names.add("Jake");

names.add("Robert");

names.add("Marisa");

names.add("Kasey");

System.out.println(names);

// [Kasey, Robert, Jake, Marisa]

  • TreeSet : elements are stored in sorted order

Set<String> names = new TreeSet<String>();

...

// [Jake, Kasey, Marisa, Robert]

the for each loop
The "for each" loop

for (typename : collection) {

statements;

}

  • Provides a clean syntax for looping over the elements of a Set, List, array, or other collection

Set<Double> grades = new HashSet<Double>();

...

for (double grade : grades) {

System.out.println(“Grade is: " + grade);

}

exercise1
Exercise
  • Write a program that counts the number of unique words in a large text file (say, Moby Dick or the King James Bible).
    • Store the words in a collection
    • Report the number of unique words
    • Allow the user to search for a word, and report whether or not the word occurred
  • What collection would you use?
slide10
Maps
  • map: Holds a set of unique keys and a collection of values, where each key is associated with one value.
    • a.k.a. "dictionary", "associative array", "hash"
  • basic map operations:
    • put(key, value ): Adds a mapping from a key toa value.
    • get(key): Retrieves thevalue mapped to the key
    • remove(key): Removesthe given key and itsmapped value

map.get("Juliet") returns "Capulet"

maps and tallying
Maps and tallying

14

"M"

"O"

3

"I"

16

keys

values

  • a map can be thought of as generalization of an array
    • the "index" (key) can be any data type

// (M)cCain, (O)bama, (I)ndependent

    • count votes:

"MOOOOOOMMMMMOOOOOOMOMMIMOMMIMOMMIO"

map implementation
Map implementation
  • maps implement the Map interface in java.util
  • HashMap and TreeMap classes implement Map
    • HashMap
      • implemented using a "hash table" array
      • very fast
      • keys are stored in unpredictable order
    • TreeMap
      • implemented using a "binary search tree“
      • pretty fast
      • keys are stored in sorted order
  • a map requires 2 type parameters
    • one for keys, one for values

Map<String, Integer> ages =

new HashMap<String, Integer>();

example
Example

Map<String, Integer> ages =

new HashMap<String, Integer>();

ages.put("Marty", 19);

ages.put("Geneva", 2);

ages.put("Vicki", 57);

System.out.println(ages);

{Vicki=57, Marty=19, Geneva=2}

Press any key to continue . . .

keyset
keySet
  • keySet method returns a set of all keys in the map
    • can loop over the keys in a foreach loop
    • can get each key's associated value using get

Map<String, Integer> ages = new HashMap<String, Integer>();

ages.put("Marty", 19);

ages.put("Geneva", 2);

ages.put("Vicki", 57);

for (String name : ages.keySet()) {

System.out.println(name + " -> " + ages.get(name));

}

exercise2
Exercise
  • Write a program to count the number of occurrences of each word in a file.
    • Print every word that appears in the file at least 1000 times, in alphabetical order.
    • Allow the user to type a word and report how many times that word appears in the file.
  • What collection is appropriate for this problem?
maps vs sets
Maps vs. Sets
  • A set is like a map from elements to boolean values.
    • We are remembering one related piece of information about every element: Is “Sam" in the set? (true/false)
    • A map allows the related piece of information to be something other than a boolean: What is “Sam" 's phone number?

Set

“Sam"

true

false

Map

“Sam"

"206-685-2181"