Collections - Stanford University...The Collections Framework Java has a variety of collections...
Transcript of Collections - Stanford University...The Collections Framework Java has a variety of collections...
![Page 1: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/1.jpg)
Collections
![Page 2: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/2.jpg)
Let's Take a Quick Break
![Page 3: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/3.jpg)
Organizing Data
● We have many ways of storing and organizing data in our programs:● Strings for holding sequences of characters.
● ArrayLists for holding sequences of general objects.
● Arrays for holding fixed-sized sequences.● HashMaps for associating data with one another.
● Are there other ways of organizing data?● What do they look like?
![Page 4: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/4.jpg)
The Collections Framework
● Java has a variety of collections classes for holding groups of data.
![Page 5: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/5.jpg)
The Collections Framework
● Java has a variety of collections classes for holding groups of data.
● The three major ways of organizing data are● Sets, which store unordered data
![Page 6: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/6.jpg)
The Collections Framework
● Java has a variety of collections classes for holding groups of data.
● The three major ways of organizing data are● Sets, which store unordered data,● Lists, which store sequences
![Page 7: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/7.jpg)
The Collections Framework
● Java has a variety of collections classes for holding groups of data.
● The three major ways of organizing data are● Sets, which store unordered data,● Lists, which store sequences, and● Maps, which store key/value pairs.
![Page 8: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/8.jpg)
The Collections Framework
Java has a variety of collections classes for holding groups of data.
The three major ways of organizing data are● Sets, which store unordered data,
Lists, which store sequences, and
Maps, which store key/value pairs.
![Page 9: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/9.jpg)
What is a Set?
● A set is a collection of distinct elements.● Similar to an ArrayList, but elements are
not stored in a sequence.● Major operations are:
● Adding an element.● Removing an element.● Checking whether an element exists.
● Useful for answering questions of the form “have I seen this before?”
![Page 10: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/10.jpg)
HashSet<String> mySet = new HashSet<String>();
![Page 11: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/11.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");
CS106ACS106A
To add a value to a HashSet, use the syntax
set.add(value)
![Page 12: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/12.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");
CS106ACS106A
CS106AIbex
![Page 13: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/13.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");
CS106ACS106A
CS106AIbex
CS106A137
![Page 14: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/14.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A");
CS106ACS106A
CS106AIbex
CS106A137
If you add a value pair where the value
exists, nothing happens.
![Page 15: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/15.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A");
mySet.contains("Ibex");
CS106ACS106A
CS106AIbex
CS106A137
![Page 16: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/16.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A");
mySet.contains("Ibex");
CS106ACS106A
CS106AIbex
CS106A137
To see if a value exists:
set.contains(value)
![Page 17: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/17.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A");
mySet.contains("Ibex");mySet.contains("CS106A");
CS106ACS106A
CS106AIbex
CS106A137
![Page 18: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/18.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A")
mySet.contains("Ibex");mySet.contains("CS106A");
CS106ACS106A
CS106AIbex
CS106A137
![Page 19: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/19.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A")
mySet.contains("Ibex");mySet.contains("CS106A");mySet.contains("<(^_^)>");
CS106ACS106A
CS106AIbex
CS106A137
![Page 20: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/20.jpg)
HashSet<String> mySet = new HashSet<String>();mySet.add("CS106A");mySet.add("Ibex");mySet.add("137");mySet.add("CS106A")
mySet.contains("Ibex");mySet.contains("CS106A");mySet.contains("<(^_^)>");
CS106ACS106A
CS106AIbex
CS106A137
![Page 21: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/21.jpg)
Basic Set Operations
● To insert an element:
set.add(value)
● To check whether a value exists:
set.contains(value)
● To remove an element:
set.remove(value)
![Page 22: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/22.jpg)
Word Walks
CODE DESIRE REWRITE TEMPERATE TEATIME MEMENTO TORRENT
![Page 23: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/23.jpg)
Word Skips
CARROT TOMATO OKRA ASPARAGUS SQUASH HORSERADISH
![Page 24: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/24.jpg)
Word Skips
● Begin with any word you'd like.● Choose a word whose first letter is the
same as the last letter of your current word.
● Repeat until you get bored.
![Page 25: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/25.jpg)
Iterators
● To visit every element of a collection, you can use the “for each” loop:
for (ElemType elem: collection) {
…
}
● Alternatively, you can use an iterator, an object whose job is to walk over the elements of a collection.
● The iterator has two commands:● hasNext(), which returns whether there are any more
elements to visit, and
● next(), which returns the next element and moves the iterator to the next position.
![Page 26: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/26.jpg)
Java Iterators
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
![Page 27: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/27.jpg)
Java Iterators
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
![Page 28: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/28.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
![Page 29: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/29.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
![Page 30: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/30.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 31: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/31.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 32: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/32.jpg)
Java Iterators
137 42 2718
hasNext()?
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 33: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/33.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 34: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/34.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 35: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/35.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 36: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/36.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 37: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/37.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 38: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/38.jpg)
Java Iterators
137 42 2718
hasNext()?
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 39: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/39.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 40: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/40.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 41: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/41.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 42: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/42.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 43: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/43.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 44: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/44.jpg)
Java Iterators
137 42 2718
hasNext()?
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 45: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/45.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 46: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/46.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 47: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/47.jpg)
Java Iterators
137 42 2718
next()!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 48: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/48.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iteriter
![Page 49: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/49.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iteriter
![Page 50: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/50.jpg)
Java Iterators
137 42 2718
hasNext()?
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 51: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/51.jpg)
Java Iterators
137 42 2718
Done!
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 52: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/52.jpg)
Java Iterators
137 42 2718
ArrayList<Integer> myList = /* … */
Iterator<Integer> iter = myList.iterator();while (iter.hasNext()) { Integer curr = iter.next();
/* … use curr … */}
iter
![Page 53: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/53.jpg)
A Use Case for Iterators
● Because all collections have iterators, a method can return an iterator to indicate “here is some data to look at.”
● Internally, that data can be stored in any format.
● Separates the implementation (how the class works) from the interface (how the class is used).
![Page 54: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/54.jpg)
A Word of Warning
● The following will loop forever on a nonempty collection:
while (collection.iterator().hasNext()) {
/* … */
}
● Every time that you call .iterator(), you get back a new iterator to the start of the collection.
Ibex Kitty
![Page 55: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/55.jpg)
A Word of Warning
● The following will loop forever on a nonempty collection:
while (collection.iterator().hasNext()) {
/* … */
}
● Every time that you call .iterator(), you get back a new iterator to the start of the collection.
Ibex Kitty
![Page 56: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/56.jpg)
The Collections Framework
Collection Map
List Set
ArrayList
HashMap
HashSet
![Page 57: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/57.jpg)
The Collections Framework
Collection Map
List Set
ArrayList
HashMap
HashSetLinkedList TreeSet
TreeMap
Plus a lot more!
![Page 58: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/58.jpg)
The Collections Framework
Collection Map
List Set
ArrayList
HashMap
HashSetLinkedList TreeSet
TreeMap
Plus a lot more!
![Page 59: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/59.jpg)
TreeSet
● TreeSet is similar to HashSet, except that the values in a TreeSet are stored in sorted order.
● Iterating over a TreeSet guarantees that the elements are visited in ascending order.
● TreeSet is a bit slower than HashSet, so it's best used only when you really need things in sorted order.
![Page 60: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/60.jpg)
Levels of Specificity
● To create a map, set, or list, you must choose a specific implementation (i.e. ArrayList, HashMap, etc.)
● You can store maps, sets, or lists in variables of type Map, Set, or List.● Similar to GObject versus GOval, GRect, etc.
● Lets you say “I just need key/value pairs” rather than “I need key/value pairs specifically stored as a HashMap”
![Page 61: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/61.jpg)
TreeMap
● TreeMap is similar to HashMap, except that the keys in a TreeMap are stored in sorted order.
● Like TreeSet, iteration over the keys visits the keys in sorted order.
● The TreeMap has several impressive methods that don't exist on the normal HashMap.
● There is slight performance cost to using TreeMap.
![Page 62: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/62.jpg)
Data With Stakes
![Page 63: Collections - Stanford University...The Collections Framework Java has a variety of collections classes for holding groups of data. The three major ways of organizing data are Sets,](https://reader030.fdocuments.us/reader030/viewer/2022040212/5e8e85bde0b4f601e36e6eee/html5/thumbnails/63.jpg)
Just how bad was the2008 financial meltdown?