0% found this document useful (0 votes)
2 views8 pages

Java - Collections Framework

Java Collections

Uploaded by

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

Java - Collections Framework

Java Collections

Uploaded by

Sheryl Arulini
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

5/11/24, 11:04 PM Java - Collections Framework

Java - Collections Framework


Prior to Java 2, Java provided ad hoc classes such as Dictionary, Vector, Stack,
and Properties to store and manipulate groups of objects. Although these classes
were quite useful, they lacked a central, unifying theme. Thus, the way that you
used Vector was different from the way that you used Properties.

Why Collections Framework?


The collections framework was designed to meet several goals, such as −

The framework had to be high-performance. The implementations for the


fundamental collections (dynamic arrays, linked lists, trees, and hashtables)
were to be highly efficient.
The framework had to allow different types of collections to work in a similar
manner and with a high degree of interoperability.

The framework had to extend and/or adapt a collection easily.

Towards this end, the entire collections framework is designed around a set of
standard interfaces. Several standard implementations such as LinkedList,
HashSet, and TreeSet, of these interfaces are provided that you may use as-is and
you may also implement your own collection, if you choose.

Java Collections Framework


A collections framework is a unified architecture for representing and manipulating
collections. All collections frameworks contain the following −

Interfaces − These are abstract data types that represent collections.


Interfaces allow collections to be manipulated independently of the details of
their representation. In object-oriented languages, interfaces generally form a
hierarchy.
Implementations, i.e., Classes − These are the concrete implementations
of the collection interfaces. In essence, they are reusable data structures.
Algorithms − These are the methods that perform useful computations, such
as searching and sorting, on objects that implement collection interfaces. The

[Link] 1/8
5/11/24, 11:04 PM Java - Collections Framework

algorithms are said to be polymorphic: that is, the same method can be used
on many different implementations of the appropriate collection interface.

In addition to collections, the framework defines several map interfaces and classes.
Maps store key/value pairs. Although maps are not collections in the proper use of
the term, but they are fully integrated with collections.

Hierarchy of Collection Framework


All classes and interfaces for the collection framework are available in [Link]
package. The following diagram shows the hierarchy of the collection framework in
Java:

Java Collection Interfaces


The collections framework defines several interfaces. This section provides an
overview of each interface −

[Link]. Interface & Description

[Link] 2/8
5/11/24, 11:04 PM Java - Collections Framework

The Collection Interface


1 This enables you to work with groups of objects; it is at the top of the
collections hierarchy.

The List Interface


2 This extends Collection and an instance of List stores an ordered
collection of elements.

The Set
3 This extends Collection to handle sets, which must contain unique
elements.

The SortedSet
4
This extends Set to handle sorted sets.

The Map
5
This maps unique keys to values.

The [Link]
6 This describes an element (a key/value pair) in a map. This is an inner
class of Map.

The SortedMap
7
This extends Map so that the keys are maintained in an ascending order.

The Enumeration
This is legacy interface defines the methods by which you can enumerate
8
(obtain one at a time) the elements in a collection of objects. This legacy
interface has been superceded by Iterator.

Java Collection Classes


Java provides a set of standard collection classes that implement Collection
interfaces. Some of the classes provide full implementations that can be used as-is
and others are abstract class, providing skeletal implementations that are used as
starting points for creating concrete collections.

The standard collection classes are summarized in the following table −

[Link]. Class & Description

AbstractCollection
1
Implements most of the Collection interface.

[Link] 3/8
5/11/24, 11:04 PM Java - Collections Framework

AbstractList
2
Extends AbstractCollection and implements most of the List interface.

AbstractSequentialList
3 Extends AbstractList for use by a collection that uses sequential rather
than random access of its elements.

LinkedList
4
Implements a linked list by extending AbstractSequentialList.

ArrayList
5
Implements a dynamic array by extending AbstractList.

AbstractSet
6
Extends AbstractCollection and implements most of the Set interface.

HashSet
7
Extends AbstractSet for use with a hash table.

LinkedHashSet
8
Extends HashSet to allow insertion-order iterations.

TreeSet
9
Implements a set stored in a tree. Extends AbstractSet.

AbstractMap
10
Implements most of the Map interface.

HashMap
11
Extends AbstractMap to use a hash table.

TreeMap
12
Extends AbstractMap to use a tree.

WeakHashMap
13
Extends AbstractMap to use a hash table with weak keys.

LinkedHashMap
14
Extends HashMap to allow insertion-order iterations.

IdentityHashMap
15 Extends AbstractMap and uses reference equality when comparing
documents.

The AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList and


AbstractMap classes provide skeletal implementations of the core collection

[Link] 4/8
5/11/24, 11:04 PM Java - Collections Framework

interfaces, to minimize the effort required to implement them.

The following legacy classes defined by [Link] have been discussed in the previous
chapter −

[Link]. Class & Description

Vector
1 This implements a dynamic array. It is similar to ArrayList, but with some
differences.

Stack
2 Stack is a subclass of Vector that implements a standard last-in, first-out
stack.

Dictionary
3 Dictionary is an abstract class that represents a key/value storage
repository and operates much like Map.

Hashtable
4 Hashtable was part of the original [Link] and is a concrete
implementation of a Dictionary.

Properties
5 Properties is a subclass of Hashtable. It is used to maintain lists of values
in which the key is a String and the value is also a String.

PriorityQueue
PriorityQueue class is an unbounded priority queue based on a priority
6
heap. A priority queue relying on natural ordering also does not permit
insertion of non-comparable objects.

BitSet
7 A BitSet class creates a special type of array that holds bit values. This
array can increase in size as needed.

ArrayDeque
ArrayDeque class provides resizable-array and implements the Deque
8
interface. Array deques have no capacity restrictions so they grow as
necessary to support usage.

EnumMap
EnumMap class is a specialized Map implementation for use with enum
9
keys. All of the keys in an enum map must come from a single enum type
that is specified, explicitly or implicitly, when the map is created.

[Link] 5/8
5/11/24, 11:04 PM Java - Collections Framework

Queue
The queue interface is provided in [Link] package and it implements the
10 Collection interface. The queue implements FIFO i.e. First In First Out.
This means that the elements entered first are the ones that are deleted
first.

Deque
EnumMap class is a specialized Map implementation for use with enum
11
keys. All of the keys in an enum map must come from a single enum type
that is specified, explicitly or implicitly, when the map is created.

The Collection Algorithms


The collections framework defines several algorithms that can be applied to
collections and maps. These algorithms are defined as static methods within the
Collections class.

Several of the methods can throw a ClassCastException, which occurs when an


attempt is made to compare incompatible types, or an
UnsupportedOperationException, which occurs when an attempt is made to
modify an unmodifiable collection.

Collections define three static variables: EMPTY_SET, EMPTY_LIST, and EMPTY_MAP.


All are immutable.

[Link]. Algorithm & Description

The Collection Algorithms


1
Here is a list of all the algorithm implementation.

How to Use an Iterator?

Often, you will want to cycle through the elements in a collection. For example, you
might want to display each element.

The easiest way to do this is to employ an iterator, which is an object that


implements either the Iterator or the ListIterator interface.

Iterator enables you to cycle through a collection, obtaining or removing elements.


ListIterator extends Iterator to allow bidirectional traversal of a list and the
modification of elements.

[Link]. Iterator Method & Description

[Link] 6/8
5/11/24, 11:04 PM Java - Collections Framework

Using Java Iterator


1 Here is a list of all the methods with examples provided by Iterator and
ListIterator interfaces.

How to Use a Comparator?

Both TreeSet and TreeMap store elements in a sorted order. However, it is the
comparator that defines precisely what sorted order means.

This interface lets us sort a given collection any number of different ways. Also this
interface can be used to sort any instances of any class (even classes we cannot
modify).

[Link]. Iterator Method & Description

Using Java Comparator


1 Here is a list of all the methods with examples provided by Comparator
Interface.

How to Use a Comparable?

Both TreeSet and TreeMap store elements in a sorted order. We can use Comparable
interface that defines precisely what sorted order means.

This interface lets us sort a given collection any number of different ways. Also this
interface can be used to sort any instances of any class (even classes we cannot
modify).

[Link]. Iterator Method & Description

Using Java Comparable


1 Here is a list of all the methods with examples provided by Comparable
Interface.

Summary
The Java collections framework gives the programmer access to prepackaged data
structures as well as to algorithms for manipulating them.

A collection is an object that can hold references to other objects. The collection
interfaces declare the operations that can be performed on each type of collection.

[Link] 7/8
5/11/24, 11:04 PM Java - Collections Framework

The classes and interfaces of the collections framework are in package [Link].

[Link] 8/8

You might also like