Introduction To Collections

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 14

Introduction to Collections

8-Apr-14

Collections

A collection is a structured group of objects Java 1.2 introduced the Collections Framework

Collections are defined in java.util The Collections framework is mostly about interfaces There are a number of predefined implementations

Java 5 introduced generics and genericized all the existing collections


Vectors have been redefined to implement Collection Trees, linked lists, stacks, hash tables, and other classes are implementations of Collection Arrays do not implement the Collection interfaces
2

Types of Collection

Java supplies several types of Collection:


Set: cannot contain duplicate elements, order is not important SortedSet: like a Set, but order is important List: may contain duplicate elements, order is important Map: a dictionary that associates keys with values, order is not important SortedMap: like a Map, but order is important

Java also supplies some collection-like things:

While you can get all the details from the Java API, you are expected to learn (i.e. memorize):

The signatures of the most important methods in each interface The most important implementations of each interface

The Collections hierarchy

Collections are ADTs

Collections are one of the best-designed parts of Java, because

They are elegant: they combine maximum power with maximum simplicity They are uniform: when you know how to use one, you almost know how to use them all You can easily convert from one to another

The Collection interface

Much of the elegance of the Collections Framework arises from the intelligent use of interfaces The Collection interface specifies (among many other operations):

boolean add(E o) boolean contains(Object o) boolean remove(Object o) boolean isEmpty() int size() Object[] toArray() Iterator<E> iterator()

You should learn all the methods of the Collection interface--all are important
6

The Iterator interface

An iterator is an object that will return the elements of a collection, one at a time interface Iterator<E>

boolean hasNext()

Returns true if the iteration has more elements Returns the next element in the iteration Removes from the underlying collection the last element returned by the iterator (optional operation)

E next()

void remove()

The Set interface

A set is a collection in which:

There are no duplicate elements (according to equals), and Order is not important

interface Set<E> implements Collection, Iterable The methods of Set are exactly the ones in Collection The following methods are especially interesting:

boolean boolean boolean boolean boolean

contains(Object o) // membership test containsAll(Collection<?> c) //subset test addAll(Collection<? extends E> c) // union retainAll(Collection<?> c) // intersection removeAll(Collection<?> c) // difference

addAll, retainAll, and removeAll return true if the receiving set is changed, and false otherwise

The List interface


A list is an ordered sequence of elements interface List<E> extends Collection, Iterable Some important List methods are:

void add(int index, E element) E remove(int index) boolean remove(Object o) E set(int index, E element) E get(int index) int indexOf(Object o) int lastIndexOf(Object o) ListIterator<E> listIterator()

A ListIterator is like an Iterator, but has, in addition, hasPrevious and previous methods

The SortedSet interface

A SortedSet is a Set for which the order of elements is important interface SortedSet<E> implements Set, Collection, Iterable Two of the SortedSet methods are:

E first() E last()

More interestingly, only Comparable elements can be added to a SortedSet, and the sets Iterator will return these in sorted order The Comparable interface is covered in a separate lecture

10

The Map interface


A map is a data structure for associating keys and values Interface Map<K,V> The two most important methods are:

V put(K key, V value) // adds a key-value pair to the map V get(Object key) // given a key, looks up the associated value Set<K> keySet()

Some other important methods are:

Returns a set view of the keys contained in this map.

Collection<V> values()

Returns a collection view of the values contained in this map

11

The SortedMap interface


A sorted map is a map that keeps the keys in sorted order Interface SortedMap<K,V> Two of the SortedMap methods are:

K firstKey() K lastKey()

More interestingly, only Comparable elements can be used as keys in a SortedMap, and the method Set<K> keySet() will return a set of keys whose iterator will return them sorted order The Comparable interface is covered in a separate lecture

12

Some implementations

class class class class class

HashSet<E> implements Set TreeSet<E> implements SortedSet ArrayList<E> implements List LinkedList<E> implements List Vector<E> implements List
Important methods: push, pop, peek, isEmpty

class Stack<E> extends Vector

class HashMap<K, V> implements Map class TreeMap<K, V> implements SortedMap All of the above provide a no-argument constructor

13

The End

14

You might also like