0% found this document useful (0 votes)
57 views102 pages

Java How To Program, 8/e: (C) 2010 Pearson Education, Inc. All Rights Reserved

This document discusses the Java collections framework and common methods for working with collections like List and LinkedList. It covers topics like storing objects in collections, iterating through collections with iterators, sorting elements, and converting between collections and arrays. The document is from Java How to Program, 8th edition and is copyrighted by Pearson Education, Inc.

Uploaded by

msahin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views102 pages

Java How To Program, 8/e: (C) 2010 Pearson Education, Inc. All Rights Reserved

This document discusses the Java collections framework and common methods for working with collections like List and LinkedList. It covers topics like storing objects in collections, iterating through collections with iterators, sorting elements, and converting between collections and arrays. The document is from Java How to Program, 8th edition and is copyrighted by Pearson Education, Inc.

Uploaded by

msahin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 102

Java How to Program, 8/e

(C) 2010 Pearson Education, Inc. All rights reserved.


(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Java collections framework
◦ prebuilt data structures
◦ interfaces and methods for manipulating those data structures

(C) 2010 Pearson Education, Inc. All rights re


served.
 A collection is a data structure—actually, an object—
that can hold references to other objects.
◦ Usually, collections contain references to objects that are all of
the same type.
 Figure 20.1 lists some of the interfaces of the
collections framework.
 Package java.util.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Each primitive type has a corresponding type-wrapper
class (in package java.lang).
◦ Boolean, Byte, Character, Double, Float,
Integer, Long and Short.
 Each type-wrapper class enables you to manipulate
primitive-type values as objects.
 Collections cannot manipulate variables of primitive

types.
◦ They can manipulate objects of the type-wrapper classes,
because every class ultimately derives from Object.

(C) 2010 Pearson Education, Inc. All rights re


served.
 Each of the numeric type-wrapper classes—Byte,
Short, Integer, Long, Float and Double—
extends class Number.
 The type-wrapper classes are final classes, so you

cannot extend them.


 Primitive types do not have methods, so the methods

related to a primitive type are located in the


corresponding type-wrapper class.

(C) 2010 Pearson Education, Inc. All rights re


served.
 A boxing conversion converts a value of a primitive type to an
object of the corresponding type-wrapper class.
 An unboxing conversion converts an object of a type-wrapper
class to a value of the corresponding primitive type.
 These conversions can be performed automatically (called
autoboxing and auto-unboxing).
 Example:
◦ // create integerArray
Integer[] integerArray = new Integer[ 5 ];
// assign Integer 10 to integerArray[ 0 ]
integerArray[ 0 ] = 10;
// get int value of Integer int value =
integerArray[ 0 ];

(C) 2010 Pearson Education, Inc. All rights re


served.
 Interface Collection is the root interface from which
interfaces Set, Queue and List are derived.
 Interface Set defines a collection that does not contain
duplicates.
 Interface Queue defines a collection that represents a waiting
line.
 Interface Collection contains bulk operations for adding,
clearing and comparing objects in a collection.
 A Collection can be converted to an array.
 Interface Collection provides a method that returns an
Iterator object, which allows a program to walk through the
collection and remove elements from the collection during the
iteration.
 Class Collections provides static methods that search,
sort and perform other operations on collections.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 A List (sometimes called a sequence) is a Collection
that can contain duplicate elements.
 List indices are zero based.
 In addition to the methods inherited from Collection,
List provides methods for manipulating elements via their
indices, manipulating a specified range of elements,
searching for elements and obtaining a ListIterator to
access the elements.
 Interface List is implemented by several classes, including
ArrayList, LinkedList and Vector.
 Autoboxing occurs when you add primitive-type values to
objects of these classes, because they store only references
to objects.

(C) 2010 Pearson Education, Inc. All rights re


served.
 Class ArrayList and Vector are resizable-array implementations
of List.
 Inserting an element between existing elements of an ArrayList or
Vector is an inefficient operation.
 A LinkedList enables efficient insertion (or removal) of elements
in the middle of a collection.
 We discuss the architecture of linked lists in Chapter 22.
 The primary difference between ArrayList and Vector is that
Vectors are synchronized by default, whereas ArrayLists are not.
 Unsynchronized collections provide better performance than
synchronized ones.
 For this reason, ArrayList is typically preferred over Vector in
programs that do not share a collection among threads.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 List method add adds an item to the end of a list.
 List method size retursn the number of elements.
 List method get retrieves an individual element’s value from the
specified index.
 Collection method iterator gets an Iterator for a
Collection.
 Iterator- method hasNext determines whether a Collection
contains more elements.
◦ Returns true if another element exists and false otherwise.
 Iterator method next obtains a reference to the next element.
 Collection method contains determine whether a
Collection contains a specified element.
 Iterator method remove removes the current element from a
Collection.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 List method addAll appends all elements of a collecton to the
end of a List.
 List method listIterator gets A List’s bidirectional
iterator.
 String method toUpperCase gets an uppercase version of a
String.
 List-Iterator method set replaces the current element to
which the iterator refers with the specified object.
 String method toLowerCase returns a lowercase version of
a String.
 List method subList obtaina a portion of a List.
◦ This is a so-called range-view method, which enables the program to
view a portion of the list.

(C) 2010 Pearson Education, Inc. All rights re


served.
 List method clear remove the elements of a List.
 List method size returns the number of items in the

List.
 ListIterator method hasPrevious determines

whether there are more elements while traversing the


list backward.
 ListIterator method previous gets the

previous element from the list.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Class Arrays provides static method asList to view an
array as a List collection.
◦ A List view allows you to manipulate the array as if it were a list.
◦ This is useful for adding the elements in an array to a collection and for
sorting array elements.
 Any modifications made through the List view change the
array, and any modifications made to the array change the List
view.
 The only operation permitted on the view returned by asList is
set, which changes the value of the view and the backing array.
◦ Any other attempts to change the view result in an
UnsupportedOperationException.
 List method toArray gets an array from a List collection.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 LinkedList method addLast adds an element to
the end of a List.
 LinkedList method add also adds an element to the

end of a List.
 LinkedList method addFirst adds an element to

the beginning of a List.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Class Collections provides several high-
performance algorithms for manipulating collection
elements.
 The algorithms (Fig. 20.5) are implemented as

static methods.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Method sort sorts the elements of a List
◦ The elements must implement the Comparable interface.
◦ The order is determined by the natural order of the elements’
type as implemented by a compareTo method.
◦ Method compareTo is declared in interface Comparable
and is sometimes called the natural comparison method.
◦ The sort call may specify as a second argument a
Comparator object that determines an alternative ordering
of the elements.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 The Comparator interface is used for sorting a
Collection’s elements in a different order.
 The static Collections method

reverseOrder returns a Comparator object that


orders the collection’s elements in reverse order.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Figure 20.8 creates a custom Comparator class, named
TimeComparator, that implements interface
Comparator to compare two Time2 objects.
 Class Time2, declared in Fig. 8.5, represents times with
hours, minutes and seconds.
 Class TimeComparator implements interface
Comparator, a generic type that takes one type argument.
 A class that implements Comparator must declare a
compare method that receives two arguments and returns
a negative integer if the first argument is less than the
second, 0 if the arguments are equal or a positive integer if
the first argument is greater than the second.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Method shuffle randomly orders a List’s
elements.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Collections method reverse reverses the order of the
elements in a List
 Method fill overwrites elements in a List with a
specified value.
 Method copy takes two arguments—a destination List
and a source List.
◦ Each source List element is copied to the destination List.
◦ The destination List must be at least as long as the source List;
otherwise, an IndexOutOfBoundsException occurs.
◦ If the destination List is longer, the elements not overwritten are
unchanged.
 Methods min and max each operate on any Collection.
◦ Method min returns the smallest element in a Collection, and
method max returns the largest element in a Collection.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 static Collections method binarySearch
locates an object in a List.
◦ If the object is found, its index is returned.
◦ If the object is not found, binarySearch returns a negative
value.
◦ Method binarySearch determines this negative value by
first calculating the insertion point and making its sign
negative.
◦ Then, binarySearch subtracts 1 from the insertion point to
obtain the return value, which guarantees that method
binarySearch returns positive numbers (>= 0) if and only
if the object is found.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Collections method addAll takes two arguments—a
Collection into which to insert the new element(s) and
an array that provides elements to be inserted.
 Collections method frequency takes two arguments
—a Collection to be searched and an Object to be
searched for in the collection.
◦ Method frequency returns the number of times that the second
argument appears in the collection.
 Collections method disjoint takes two
Collections and returns true if they have no elements
in common.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Class Stack in the Java utilities package (java-.util)
extends class Vector to implement a stack data structure.
 Stack method push adds a Number object to the top of the
stack.
 Any integer literal that has the suffix L is a long value.
 An integer literal without a suffix is an int value.
 Any floating-point literal that has the suffix F is a float value.
 A floating-point literal without a suffix is a double value.
 Stack method pop removes the top element of the stack.
◦ If there are no elements in the Stack, method pop throws an
EmptyStackException, which terminates the loop.
 Method peek returns the top element of the stack without
popping the element off the stack.
 Method isEmpty determines whether the stack is empty.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Interface Queue extends interface Collection and provides
additional operations for inserting, removing and inspecting
elements in a queue.
 PriorityQueue orders elements by their natural ordering.
◦ Elements are inserted in priority order such that the highest-priority
element (i.e., the largest value) will be the first element removed from
the PriorityQueue.
 Common PriorityQueue operations are
◦ offer to insert an element at the appropriate location based on priority
order
◦ poll to remove the highest-priority element of the priority queue
◦ peek to get a reference to the highest-priority element of the priority
queue
◦ clear to remove all elements in the priority queue
◦ size to get the number of elements in the queue.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 A Set is an unordered Collection of unique
elements (i.e., no duplicate elements).
 The collections framework contains several Set

implementations, including HashSet and TreeSet.


 HashSet stores its elements in a hash table, and

TreeSet stores its elements in a tree.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 The collections framework also includes the SortedSet
interface (which extends Set) for sets that maintain their
elements in sorted order.
 Class TreeSet implements SortedSet.
 TreeSet method headSet gets a subset of the TreeSet
in which every element is less than the specified value.
 TreeSet method tailSet gets a subset in which each
element is greater than or equal to the specified value.
 SortedSet methods first and last get the smallest
and largest elements of the set, respectively.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Maps associate keys to values.
◦ The keys in a Map must be unique, but the associated values
need not be.
◦ If a Map contains both unique keys and unique values, it is said
to implement a one-to-one mapping.
◦ If only the keys are unique, the Map is said to implement a
many-to-one mapping—many keys can map to one value.
 Three of the several classes that implement interface
Map are Hashtable, HashMap and TreeMap.
 Hashtables and HashMaps store elements in hash

tables, and TreeMaps store elements in trees.

(C) 2010 Pearson Education, Inc. All rights re


served.
 Interface SortedMap extends Map and maintains its keys
in sorted order—either the elements’ natural order or an
order specified by a Comparator.
 Class TreeMap implements SortedMap.
 Hashing is a high-speed scheme for converting keys into
unique array indices.
 A hash table’s load factor affects the performance of
hashing schemes.
◦ The load factor is the ratio of the number of occupied cells in the
hash table to the total number of cells in the hash table.
 The closer this ratio gets to 1.0, the greater the chance of
collisions.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Map method containsKey determines whether a key is
in a map.
 Map method put creates a new entry in the map or replaces
an existing entry’s value.
◦ Method put returns the key’s prior associated value, or null if the
key was not in the map.
 Map method get obtain the specified key’s associated
value in the map.
 HashMap method keySet returns a set of the keys.
 Map method size returns the number of key/value pairs in
the Map.
 Map method isEmpty returns a boolean indicating
whether the Map is empty.

(C) 2010 Pearson Education, Inc. All rights re


served.
 A Properties object is a persistent Hashtable that
normally stores key/value pairs of strings—assuming that
you use methods setProperty and getProperty to
manipulate the table rather than inherited Hashtable
methods put and get.
 The Properties object’s contents can be written to an
output stream (possibly a file) and read back in through an
input stream.
 A common use of Properties objects in prior versions
of Java was to maintain application-configuration data or
user preferences for applications.
◦ [Note: The Preferences API (package java.util.prefs) is
meant to replace this use of class Properties.]

(C) 2010 Pearson Education, Inc. All rights re


served.
 Properties method store saves the object’s
contents to the OutputStream specified as the first
argument. The second argument, a String, is a
description written into the file.
 Properties method list, which takes a
PrintStream argument, is useful for displaying the
list of properties.
 Properties method load restores the contents of a
Properties object from the InputStream
specified as the first argument (in this case, a
FileInputStream).

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 Synchronization wrappers are used for collections that
might be accessed by multiple threads.
 A wrapper object receives method calls, adds thread

synchronization and delegates the calls to the wrapped


collection object.
 The Collections API provides a set of static

methods for wrapping collections as synchronized


versions.
 Method headers for the synchronization wrappers are

listed in Fig. 20.20.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 The Collections class provides a set of static
methods that create unmodifiable wrappers for
collections.
 Unmodifiable wrappers throw

UnsupportedOperationExceptions if
attempts are made to modify the collection.
 Headers for these methods are listed in Fig. 20.21.

(C) 2010 Pearson Education, Inc. All rights re


served.
(C) 2010 Pearson Education, Inc. All rights re
served.
(C) 2010 Pearson Education, Inc. All rights re
served.
 The collections framework provides various abstract
implementations of Collection interfaces from which
you can quickly “flesh out” complete customized
implementations.
 These include
◦ a thin Collection implementation called an
AbstractCollection
◦ a List implementation that allows random access to its elements
called an AbstractList
◦ a Map implementation called an AbstractMap
◦ a List implementation that allows sequential access to its elements
called an AbstractSequentialList
◦ a Set implementation called an AbstractSet
◦ a Queue implementation called AbstractQueue.

(C) 2010 Pearson Education, Inc. All rights re


served.

You might also like