The Java Collections Package - PowerPoint PPT Presentation

About This Presentation
Title:

The Java Collections Package

Description:

Ex: a poker hand, a phone directory, a mail folder. Collection framework features. Interfaces ... reverse(states); System.out.println('states in reverse sorted ... – PowerPoint PPT presentation

Number of Views:159
Avg rating:3.0/5.0
Slides: 24
Provided by: B2811
Category:

less

Transcript and Presenter's Notes

Title: The Java Collections Package


1
The Java Collections Package
  • C. DeJong
  • Fall 2001

2
Introduction
  • A collection is an object that contains other
    objects
  • Ex a poker hand, a phone directory, a mail folder

3
Collection framework features
  • Interfaces
  • Implementations
  • Algorithms
  • Polymorphic
  • cf. the Standard Template Library (STL) in C

4
Benefits
  • Data structures and algorithms for free
  • Tested
  • A well-known standard
  • Software reuse

5
The Collection interface
  • Root of the collections hierarchy
  • Other interfaces extend Collection
  • Java provides implementations of subinterfaces
    (Set, List, etc)
  • For passing and manipulating collections
    generically
  • Implementations have a constructor that accepts a
    Collection parameter

6
Collection methods (basic)
  • int size()
  • boolean isEmpty()
  • boolean contains(Object element)
  • boolean add(Object element)
  • boolean remove(Object element)
  • Iterator iterator()

7
The Iterator interface
  • Used to traverse elements of a Collection
  • Can remove elements
  • Methods
  • boolean hasNext()
  • Object next()
  • void remove()

8
Using Iterator
// simple method to print out each element in a
collection // using an Iterator public void
printContents(Collection stuff) for(Iterator
istuff.iterator()i.hasNext()) System.out.p
rintln(i.next())
9
Collection methods (bulk ops)
  • boolean containsAll(Collection c)
  • boolean addAll(Collection c)
  • boolean removeAll(Collection c)
  • boolean retainAll(Collection c)
  • void clear()

10
Collection methods (arrays)
  • Object toArray()
  • Object toArray(Object a)

11
A note on Collection methods
  • All Collection interfaces (Set, List, Map) have
    these methods (why?)
  • Not all are supported
  • Optional operations not supported throw
    UnsupportedOperationException
  • Java uses Exceptions to represent errors at
    runtime (more on this later)

12
The Set interface
  • extends Collection interface
  • Cannot contain duplicate elements
  • Models the mathematical Set abstraction
  • Implemented by HashSet and TreeSet classes
  • Use HashSet in most cases

13
Set interface methods
  • Basic (size, isEmpty, contains, add, remove,
    iterator)
  • Bulk (containsAll, addAll, removeAll, retainAll,
    clear)
  • Arrays (toArray)

14
Using the Set interface
import java.util. public class FindDups
public static void main(String args)
Set s new HashSet() for (int
i0iltargs.lengthi) if
(!s.add(argsi)) System.out.println("
Duplicate detected " argsi)
System.out.println(s.size() " distinct words
detected " s) java FindDups
i came i saw i left Duplicate detected
i Duplicate detected i 4 distinct words
detected came, left, saw, i
15
The List interface
  • extends Collection interface
  • Ordered
  • Duplicates OK
  • Elements have a position and index number
  • Similar to arrays
  • Implemented by ArrayList, LinkedList and Vector
    (use ArrayList)
  • beware of java.awt.List

16
List interface methods
  • all methods from Collection interface
  • Positional access (get, set, add, remove, addAll)
  • Search (indexOf, lastIndexOf)
  • Iteration (listIterator)
  • Range-view (subList)

17
Using the List interface
List list1 new ArrayList() list1.add("John") l
ist1.add("George") List list2 new
Vector() list2.add("Paul") list2.add("Ringo") l
ist1.addAll(list2) for (int i0iltlist1.size()i
) String name (String)list1.get(i)
System.out.println(name) // John, then George,
etc. System.out.println((String)list1.get(1))
// George
18
The Map Interface
  • does not extend Collection interface
  • Maps keys to values ("associative array")
  • Like List and arrays, but key instead of index
    number
  • implemented by HashMap, TreeMap and HashTable
    (use HashMap)

19
Map interface methods
  • no methods from Collection interface
  • Basic (put, get, remove, containsKey,
    containsValue, size, isEmpty)
  • Bulk (putAll, clear)
  • Collection views (keySet, values, entrySet)

20
using the Map interface
// sample Map to store state capitols by state
abbreviation private Map capitols new
HashMap() capitols.put("MI","Lansing") capitols.
put("IL","Springfield") capitols.put("TX","Austin
") capitols.put("CA","Sacramento") String
michiganCap (String)capitols.get("MI") System.
out.println("The capitol of Michigan is "
michiganCap) System.out.println("Map has "
capitols.size() " elements") capitols.clear()
// deletes all elements System.out.println("Map
has " capitols.size() " elements")
21
The Collections class
  • Not the same as the Collection interface
  • Static utility methods to operate on Collection
    objects

22
Collections class methods
  • Searching
  • Sorting
  • Copying
  • Min/Max
  • Reverse
  • Shuffle
  • Synchronization
  • Unmodifiable
  • Singletons
  • Fill
  • Constants for empty
  • List
  • Set
  • Map
  • Etc.

23
using the Collections class
import java.util. public class
CollectionsUse public static void main(String
args) List states new ArrayList() stat
es.add("AL") states.add("IL") states.add("MI
") states.add("CA") System.out.println("fir
st state is " Collections.min(states)) System
.out.println("last state is "
Collections.max(states)) System.out.println("st
ates in original order " states) Collections.
sort(states) System.out.println("states in
sorted order " states) Collections.reverse(st
ates) System.out.println("states in reverse
sorted order " states) Collections.shuffle(st
ates) System.out.println("states in random
order " states)
Write a Comment
User Comments (0)
About PowerShow.com