Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Java Collections Package C. DeJong Fall 2001.

Similar presentations


Presentation on theme: "The Java Collections Package C. DeJong Fall 2001."— Presentation transcript:

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 // simple method to print out each element in a collection // using an Iterator public void printContents(Collection stuff) { for(Iterator i=stuff.iterator();i.hasNext();) { System.out.println(i.next()); } Using Iterator

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 import java.util.*; public class FindDups { public static void main(String[] args) { Set s = new HashSet(); for (int i=0;i<args.length;i++) if (!s.add(args[i])) System.out.println("Duplicate detected " + args[i]); System.out.println(s.size() + " distinct words detected: " + s); } java FindDups i came i saw i left Duplicate detected: i 4 distinct words detected: [came, left, saw, i] Using the Set interface

15 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 The List interface

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 List list1 = new ArrayList(); list1.add("John"); list1.add("George"); List list2 = new Vector(); list2.add("Paul"); list2.add("Ringo"); list1.addAll(list2); for (int i=0;i<list1.size();i++) { String name = (String)list1.get(i); System.out.println(name); // John, then George, etc. } System.out.println((String)list1.get(1)); // George Using the List interface

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 // 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"); using the Map interface

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(); states.add("AL"); states.add("IL"); states.add("MI"); states.add("CA"); System.out.println("first state is " + Collections.min(states)); System.out.println("last state is " + Collections.max(states)); System.out.println("states in original order " + states); Collections.sort(states); System.out.println("states in sorted order " + states); Collections.reverse(states); System.out.println("states in reverse sorted order " + states); Collections.shuffle(states); System.out.println("states in random order " + states); }


Download ppt "The Java Collections Package C. DeJong Fall 2001."

Similar presentations


Ads by Google