Download presentation
Presentation is loading. Please wait.
Published byPolly Richard Modified over 9 years ago
1
Lecture 131 CS110 Lecture 13 Thursday, March 11, 2004 Announcements –hw5 due tonight –Spring break next week –hw6 due two weeks from tonight Agenda –questions –TreeMap –hw6 –stub programming
2
Lecture 132 Maps arrays and ArrayLists locate entries by index –index is an integer position, starting at 0 A Map locates entries by key –key is often a String (think dictionary, phone book) A map stores key-value pairs –key: “Java” value: “a modern OO language” –key: “UMass” value: areaCode: 617 exchange: 287 PhoneNumber number: 5000
3
Lecture 133 TreeMapDemo.java Class Integer to wrap primitive int Iterator practice Useful toString (for debugging) Remember to cast Same value stored twice Keys that aren’t Strings
4
Lecture 134 Set keys = map.keySet(); Iterator keysIterator = keys.iterator(); ask the map for its keySet ask the keySet to give you an Iterator keysIterator is like a list of the keys in the map You can infer from this code that –Set and Iterator are classes in the Java API –keySet is a method in class TreeMap; it returns a Set –iterator is a method in class Set; it returns an Iterator Getting an Iterator
5
Lecture 135 while ( keysIterator.hasNext() ) { String key = (String)keysIterator.next(); terminal.println( " … " + ( Integer)map.get( key)) ); } hasNext() returns false when at end of list next() returns a reference to the next Object in the list Iterator next method, like TreeMap get method, returns just an Object. Need two casts. Using an Iterator
6
Lecture 136 Class Lookup Dictionary has no unit test Class Lookup is a client for Dictionary (and tests it thoroughly) All of Lookup is static > java Lookup … all Lookup.java sends toString messages to a Definition object (line 53) and to a Dictionary object (line 103)
7
Lecture 137 Dictionary boxes and arrows entries: "shape" TreeMap Dictionary TreeMap "quadrilateral" "a shape with four sides" entries: "a geometric object in a plane" entries: Definition String definition: entries: Definition String definition: Object String
8
Lecture 138 Looping on a TreeMap To print the whole Dictionary, Lookup sends a toString message, invoking Dictionary toString method (line 70) Subtle, since there’s no index to loop with Uses an Iterator object - Java tool custom designed for looping Iterator API has just two methods: –boolean hasNext() –Object next()
9
Lecture 139 while ( wordIterator.hasNext() ) { word = (String)wordIterator.next(); definition = this.getEntry( word ); str += word + ":\n" + definition.toString() + "\n"; } use the key to look up a Definition send the Definition a toString message add two lines to the String str we are building to represent the whole Dictionary Building a multiline String
10
Lecture 1310 TreeMap summary declaration: TreeMap mapName; creation: new TreeMap( ); put: mapName.put(Object key, Object obj) get: (Type)mapName.get(Object key) cast to proper Type length: mapName.size( ) looping: get Set of keys from the map, then get an Iterator from the set mapName.keySet( ).iterator( )
11
Lecture 1311 Duplicates? The same value may appear more than once in a collection (array, ArrayList or Map) –my wife and I have the same phone number –“field” and “instance variable” have the same definition –in an array, foo[3] may == foo[7] In a Map, keys are unique (like index in an array) If you want to arrange for one person to have more than one phone number or one word to have more than one definition you need to work harder …
12
Lecture 1312 Collections of collections Dictionary might map a word to an ArrayList of Definition instances Registrar’s database maps a student ID to a StudentRecord object that contains a Map of courses taken (key course name, value an object storing the grade) Screen maintains a private field that’s an array of arrays of char: private char[][] pixels;
13
Lecture 1313 Figure 4.5 Object structure of a 2x3 Screen 0: char[][] 1: char[] ‘ 5 1: 2: 0: ‘ int width: int height: char[][] pixels: 2 3 char[] ‘ 5 1: 2: 0: ‘ Screen
14
Lecture 1314 hw6 Due Thursday after Spring break TreeMap practice –class Directory –little Bank, using a TreeMap
15
Lecture 1315 Directory Model windows folder Contains TextFiles (not other Folders - wait for Chapter 5) API: create, add file to, get file from, get size, get owner, get create/mod date Design: Directory object has a TreeMap field storing TextFile objects keyed by String filename You write this for homework
16
Lecture 1316 Stub programming Start with all javadoc comments and method declarations, empty method bodies Fill in code a method at a time (perhaps even a line at a time) Compile and test as you go along!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.