PDF Introduction to Computation and Problem Solving Class 32: The ...
Introduction to Computation and Problem Solving
Class 32: The Java Collections Framework
Prof. Steven R. Lerman and
Dr. V. Judson Harward
Goals
? To introduce you to the data structure classes that come with the JDK;
? To talk about how you design a library of related classes
? To review which data structures are the best tools for a variety of algorithmic tasks
2
1
History
In the original version of the Java Development Kit, JDK 1.0, developers were provided very few data structures. These were: ? Vector ? Stack: which extended Vector ? Hashtable: very similar to our implementation of HashMap ? Dictionary: an abstract class that defined the interface and some functionality for classes that map keys to values. Dictionary served as the base class for Hashtable. ? Enumeration: was a simple version of our Iterator that allowed you to iterate over instances of Hashtable and Vector.
3
The Java Collections Framework
? The Java designers realized that this set of data structures was inadequate.
? They prototyped a new set of data structures as a separate toolkit late in JDK 1.1, and then made it a formal part of the JDK in version 1.2.
? This later, fuller, better designed set of classes is called the Java Collections Framework.
? There is a good tutorial on its use at s/index.html.
4
2
Collections Interfaces, 1
Collection
Set
List
Map SortedMap
SortedSet
5
Iterator ListIterator
Collections Interfaces, 2
? Collection: is the most basic interface; it has the functionality of an unordered list, aka a multiset, a set that doesn't not check for duplicates.
? Set: adds set semantics; that is, it won't allow duplicate members.
? List: adds list semantics; that is, a sense of order and position
? SortedSet: adds order to set semantics; our binary search tree that just consisted of keys without values could be implemented as a SortedSet
6
3
Collections Interfaces, 3
? Map: the basic interface for data structures that map keys to values; it uses an inner class called an Entry
? SortedMap: a map of ordered keys with values; our binary search tree is a good example
? Iterator: our Iterator except that it is fail fast; it throws a ConcurrentModificationException if you use an instance after the underlying Collection has been modified.
? ListIterator: a bidirectional iterator.
7
Collection Implementations
? The Java designers worked out the architecture of interfaces independently of any data structures. In a second stage they created a number of concrete implementations of the interfaces based on slightly more sophisticated versions of the data structures that we have been studying:
? Resizable Array: similar to the technique used for our Stack implementation.
? Linked List: uses a doubly, not singly, linked list. ? Hash Table: very similar to our implementation except that it
will grow the number of slots once the load factor passes a value that can be set in the constructor. ? Balanced Tree: similar to our binary search tree implementation but based on the more sophisticated RedBlack tree that rebalances the tree after some operations.
8
4
Collection Implementations, 2
List
Set
Interfaces
Sorted Set
Map
Sorted Map
9
Hash Table
HashSet
Implementations
Resizable Array ArrayList
Balanced Tree
Linked List LinkedList
TreeSet
HashMap
TreeMap
Collection Implementations, 3
? Notice the gaps. There is no list based on a hash table. Why? What about a set implementation based on a linked list?
? The goal of the Java designers was to create a small set of implementations to get users started, not an exhaustive set.
? They expect that developers will extend the set of collection classes just as they expect that developers will add more stream classes.
? The most important part of the collection design was the architecture of interfaces. That's why they called it a framework.
10
5
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- pdf standard template library and the java collections classes
- pdf learning computer programming using java with 101 examples
- pdf lambda expressions in java 8 part 1 basics
- pdf java current affairs 2018 apache commons collections
- pdf 15 department of computer science
- pdf java collections framework
- pdf java basics usf computer science
- pdf introduction to programming using java iit kanpur
- pdf java in a nutshell 6th edition covers java 8 r 5
- pdf photo credit andrew kennedy generics and the java
Related searches
- pdf introduction to management
- introduction to finance and accounting
- introduction to leadership and management
- introduction to language and linguistics
- introduction to leadership and governance
- pdf introduction to computer
- introduction to philosophy and logic
- introduction to positive and negative numbers
- practice and problem solving workbook answers
- problem solving skills in the workplace
- introduction to food and beverage service
- practice and problem solving answer