collections & definite loops

18
Collections & Collections & Definite Loops Definite Loops CSE 115 CSE 115 Spring 2006 Spring 2006 April 10, 12, & 14 2006 April 10, 12, & 14 2006

Upload: kamal-arnold

Post on 30-Dec-2015

27 views

Category:

Documents


0 download

DESCRIPTION

Collections & Definite Loops. CSE 115 Spring 2006 April 10, 12, & 14 2006. Discussion of PacMan. Make note of the requirements listed in the lab description. Attend recitations for additional advice and assistance. In class, we will build a game (Tic Tac Toe). Collections. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Collections & Definite Loops

Collections & Collections & Definite LoopsDefinite LoopsCSE 115 CSE 115

Spring 2006Spring 2006

April 10, 12, & 14 2006April 10, 12, & 14 2006

Page 2: Collections & Definite Loops

Discussion of PacManDiscussion of PacMan

Make note of the requirements listed in Make note of the requirements listed in the lab description.the lab description.

Attend recitations for additional advice Attend recitations for additional advice and assistance.and assistance.

In class, we will build a game (Tic Tac In class, we will build a game (Tic Tac Toe).Toe).

Page 3: Collections & Definite Loops

CollectionsCollections

Storage for many objects.Storage for many objects. Two main types:Two main types:

BagsBags AssociationsAssociations

We will discuss use of collections, you We will discuss use of collections, you will see how to write your own collection will see how to write your own collection classes in CSE 116 & 250.classes in CSE 116 & 250.

Page 4: Collections & Definite Loops

Java Collections Java Collections FrameworkFramework

Java provides implementations for a Java provides implementations for a number of “standard” collections classes number of “standard” collections classes in the java.util package.in the java.util package.

The root interface of the collections The root interface of the collections hierarchy is Collection.hierarchy is Collection.

Page 5: Collections & Definite Loops

The Collection<E> The Collection<E> interfaceinterface

Note the <E> after the word collection.Note the <E> after the word collection. The <E> indicates that this class can use The <E> indicates that this class can use

a generic type (parameterized type).a generic type (parameterized type). When you create an instance of a class When you create an instance of a class

with a generic type, you specify in the <> with a generic type, you specify in the <> the actual type for the generic.the actual type for the generic.

Page 6: Collections & Definite Loops

Using Generic TypesUsing Generic Types

For collections, what you are specifying For collections, what you are specifying with the generic type is the type of with the generic type is the type of objects you will be storing in a collection.objects you will be storing in a collection.

Eg) I want a bag of cats.Eg) I want a bag of cats. When you do this, Java ensures that only When you do this, Java ensures that only

objects of the type specified go in and objects of the type specified go in and you can be assured that only objects of you can be assured that only objects of that type come out.that type come out.

Page 7: Collections & Definite Loops

A usable bagA usable bag

java.util.ArrayList<E>java.util.ArrayList<E> Note the operations that you can perform Note the operations that you can perform

on this collection.on this collection. The most important will be creating an The most important will be creating an

instance of the collection, inserting instance of the collection, inserting elements, removing elements, and elements, removing elements, and finding if elements are in the collection.finding if elements are in the collection.

Page 8: Collections & Definite Loops

Another important Another important collection operationcollection operation

Iterating over all the elements of a Iterating over all the elements of a collection and performing some operation collection and performing some operation with/on each element of the collection.with/on each element of the collection.

This process can be accomplished by This process can be accomplished by using a special object provided by Java using a special object provided by Java called an iterator.called an iterator.

In Java 5, the use of the iterator has In Java 5, the use of the iterator has been replaced with the for-each loop.been replaced with the for-each loop.

Page 9: Collections & Definite Loops

For-each loopFor-each loop

Allows access to each element of a collection.Allows access to each element of a collection. Syntax:Syntax:for(TypeOfElementInCollection for(TypeOfElementInCollection giveNameToElement: NameOfCollection) {giveNameToElement: NameOfCollection) {

//write code for what to do with //write code for what to do with each //element.each //element.

}}

Page 10: Collections & Definite Loops

ArrayLists and PacManArrayLists and PacMan

Note that in the Note that in the CSE115.Pacman.BoardPositions class CSE115.Pacman.BoardPositions class there are ArrayLists for each of the type there are ArrayLists for each of the type of cells on the PacMan board. Further of cells on the PacMan board. Further explanation will be provided in recitation.explanation will be provided in recitation.

Page 11: Collections & Definite Loops

A useful associationA useful association

java.util.HashMap<K, V>java.util.HashMap<K, V>

Associates a key with a value. Associates a key with a value. Both the key and value are objects.Both the key and value are objects. User specifies what type of key and value User specifies what type of key and value

is used when HashMap is created.is used when HashMap is created.

Page 12: Collections & Definite Loops

Useful operations with Useful operations with HashMapsHashMaps

put (put a key/value pair in the HashMap)put (put a key/value pair in the HashMap) RemoveRemove Look up a value using its keyLook up a value using its key Iterating using the for-each loopIterating using the for-each loop

Page 13: Collections & Definite Loops

Using for-each with Using for-each with HashMaps HashMaps (note (note .values().values()))java.util.HashMap<Position, Cell> _board = java.util.HashMap<Position, Cell> _board = new java.util.HashMap <Position, Cell>();new java.util.HashMap <Position, Cell>();

//magic happens to put things into //magic happens to put things into board.board.

for(Cell c: _board.values() {for(Cell c: _board.values() {c.draw();c.draw();

}}

Page 14: Collections & Definite Loops

The keyword The keyword forfor

The for-each is a specialized loop The for-each is a specialized loop designed to work with collections.designed to work with collections.

forfor is a keyword in Java that tells us is a keyword in Java that tells us there is a loop.there is a loop.

You can create a regular “for-loop” for You can create a regular “for-loop” for use in your programs.use in your programs.

Page 15: Collections & Definite Loops

Loops Loops (Iteration/Repetition)(Iteration/Repetition)

The ability to do a task repeatedly.The ability to do a task repeatedly. The functionality of repetition is most The functionality of repetition is most

often implemented in programming often implemented in programming languages using loops.languages using loops.

Page 16: Collections & Definite Loops

Definite LoopDefinite Loop

The “for-loop” is characterized as a The “for-loop” is characterized as a definite loop and is normally used when definite loop and is normally used when you know how many times you want a you know how many times you want a specific task to be performed. It is specific task to be performed. It is sometimes referred to as a counting loop.sometimes referred to as a counting loop.

Page 17: Collections & Definite Loops

Entry Test LoopEntry Test Loop

A “for-loop” is also characterized as an A “for-loop” is also characterized as an entry-test loop. That is, a condition about entry-test loop. That is, a condition about whether the loop should continue is whether the loop should continue is tested before actually doing the work of tested before actually doing the work of the loop.the loop.

Page 18: Collections & Definite Loops

Syntax of for-loopSyntax of for-loop

for (initialization; condition; increment) for (initialization; condition; increment)

{{//loop body//loop body

}}

Usually, the initialization is of a loop counter Usually, the initialization is of a loop counter variable that is checked against a bounds in variable that is checked against a bounds in the condition and is incremented in the the condition and is incremented in the increment step.increment step.