© a+ computer science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · collection,...

63

Upload: others

Post on 19-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer

Science -

www.apluscompsci.co

m

Page 2: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 3: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

In Java, any variable that refers to an Object is a reference variable. The variable stores the memory address of the actual Object.

Page 4: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

String x = new String("Chuck"); String y = x; x and y store the same memory address.

"Chuck"

x y 0x2B3 0x2B3 0x2B3

Page 5: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

String x = "Chuck"; String y = "Chuck"; x and y store the same memory address.

"Chuck"

x y 0x2B7 0x2B7 0x2B7

Page 6: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

"Chuck" "Chuck"

String x = new String("Chuck"); String y = new String("Chuck"); x and y store different memory addresses.

x y 0x2B7

0x2B7

0x2FE

0x2FE

Page 7: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

String x = "Chuck"; String y = "Chuck";

"Chuck"

x y 0x2B7 0x2B7 0x2B7

x = null;

null

Page 8: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 9: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 10: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Collection, List, and Set all have methods that return iterators. Iterators allow you to go from item to item through a collection. Map does not have an iterator, but it does have a keySet() method that returns a Set of all keys. You can get an iterator from the Set.

Page 11: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

An Iterator provides a standard way to access all of the references stored in a collection. For some Collections, TreeMap and HashSet for instance, the underlying data structures are not sequentially organized like an array. For example, a tree has nodes all over the place.

2

1 3

4

Page 12: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

By using the Iterator, the references from a Collection can be accessed in a more standard sequential-like manner without having to manipulate the underlying Collection data structure.

1 2 3 4

Page 13: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 14: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Iterator frequently used methods

Name Use

next() returns a reference to the next item

remove() removes the last ref returned by next

hasNext() checks to see there are more items

import java.util.Iterator;

Page 15: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); words.add("us"); Iterator<String> it = words.iterator(); System.out.println(it.next());

OUTPUTat

Page 16: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

at is of us

list

Iterator it = list.iterator();

Page 17: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

method next() { oldRef = currRef currRef = next ref in the collection return oldRef }

Page 18: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it it.next();

list

next moves the iterator up one spot and returns a reference to the 1st item.

at is of us

Page 19: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); words.add("us"); Iterator<String> it = words.iterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next());

OUTPUT

at is of us

Page 20: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 21: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); words.add("us"); Iterator<String> it = words.iterator(); while(it.hasNext()) { System.out.println(it.next()); }

OUTPUTat is of us

Page 22: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 23: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); Iterator<String> it = words.iterator(); System.out.println(it.next()); it.remove(); System.out.println(it.next()); System.out.println(words);

OUTPUT

at is [is, of]

Page 24: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

at is of us

list

Iterator it = list.iterator();

Page 25: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it it.next();

list

next moves the iterator up one spot and returns a reference to the 1st item.

at is of us

Page 26: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it it.remove();

list

remove always modifies the last reference returned by next.

at is of us

Page 27: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); Iterator<String> it = words.iterator(); System.out.println(it.next()); it.remove(); it.remove();

OUTPUT

at error

Page 28: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

list

at is of us

Page 29: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

it.next();

list

next moves the iterator up one spot and returns a reference to the 1st item.

at is of us

Page 30: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

it.remove();

list

remove always modifies the last reference returned by next.

is of us at

Page 31: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

it.remove();

list

remove call blows up because there was no call to next; thus, there was no reference to modify.

is of us

Page 32: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 33: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 34: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ListIterator frequently used methods

Name Use

next() returns a reference to the next item

remove() removes the last ref returned by next or previous

hasNext() checks to see there are more items

add() adds in a new item

set() sets the last ref returned by next or previous

previous() goes back and returns a ref to prev item

import java.util.ListIterator;

Page 35: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); words.add("us"); ListIterator<String> it = words.listIterator(); System.out.println(it.next()); System.out.println(it.next());

OUTPUTat is

Page 36: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 37: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("of"); words.add("us"); ListIterator<String> it = words.listIterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.previous());

OUTPUTat is is

Page 38: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science -

www.apluscompsci.com

Page 39: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("up"); words.add("or"); ListIterator<String> it = words.listIterator(); it.next(); it.next(); it.next(); System.out.println(it.previous()); System.out.println(it.previous()); it.set("33"); System.out.println(words);

OUTPUT or up [at, 33, or]

Page 40: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 41: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("at"); words.add("is"); words.add("us"); ListIterator<String> it = words.listIterator(); System.out.println(it.next()); it.set("###"); System.out.println(it.next()); System.out.println(words);

OUTPUT at is [###, is, us]

Page 42: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

is us

list

at

Page 43: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

at

it.next();

it

next moves the iterator up one spot and returns a reference to the 1st item.

Page 44: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

###

it.set("###");

set always modifies the last reference returned by next or previous.

it

Page 45: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

###

it.next();

it

next moves the iterator up one spot and returns a reference to the 2nd item.

Page 46: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 47: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<String> words; words = new ArrayList<String>(); words.add("is"); words.add("us"); ListIterator<String> it = words.listIterator(); it.add("##"); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.previous()); it.set("##"); System.out.println(words);

OUTPUT is us us [##, is, ##]

Page 48: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

it

is us

list

Page 49: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

##

it

it.add("##");

add always adds the new item in front of the current spot.

Page 50: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

##

it

it.next();

next moves the iterator up one spot and returns a reference to the 2nd item.

Page 51: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

##

it

it.next();

next moves the iterator up one spot and returns a reference to the 3rd item.

Page 52: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is us

list

##

it

it.previous();

previous backs the iterator up one spot and returns a reference to the 3rd item.

Page 53: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

is ##

list

##

it

it.set("##");

set always modifies the last reference returned by next or previous.

Page 54: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 55: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Modifications through an Iterator or ListIterator are always applied to the reference returned by the last next or previous call. Pay attention to the direction you are going. Iterator only goes one direction. ListIterator can go either direction.

Page 56: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 57: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

int[] array = {4,5,6,7}; int sum = 0; for(int i=0; i<array.length; i++) { sum += array[i]; }

Page 58: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

int array[] = {4,9,6,2,3}; int sum = 0; for (int num : array) sum = sum + num; System.out.println(sum);

Page 59: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<Integer> list; list = new ArrayList<Integer>(); list.add(3); list.add(9); for (Integer num : list) System.out.print(num + " ");

Page 60: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

ArrayList<Integer> list; list = new ArrayList<Integer>(); list.add(3); list.add(9); for (int num : list) System.out.print(num + " ");

Page 61: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from
Page 62: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer Science - www.apluscompsci.com

Page 63: © A+ Computer Science - mjohnadamsdsisd.weebly.com/.../38172527/01c_iterator... · Collection, List, and Set all have methods that return iterators. Iterators allow you to go from

© A+ Computer

Science -

www.apluscompsci.co

m