Presentation is loading. Please wait.

Presentation is loading. Please wait.

Collections A First Glimpse 16-Apr-19.

Similar presentations


Presentation on theme: "Collections A First Glimpse 16-Apr-19."— Presentation transcript:

1 Collections A First Glimpse 16-Apr-19

2 Collections A collection is a structured group of objects
An array is a kind of collection A Vector is a kind of collection A linked list is a kind of collection Java 1.2 introduced the Collections Framework and provided many great implementations 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

3 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 Java also supplies some “collection-like” things: Map: a “dictionary” that associates keys with values, order is not important SortedMap: like a Map, but order is important

4 The Collections hierarchy

5 Collections are ADTs I’m not going to cover Collections just yet, but I want to use them as an example 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

6 Uniformity through interfaces
Much of the elegance of the Collections Framework arises from the intelligent use of interfaces For example, the Collection interface specifies (among many other operations): boolean add(Object o) boolean isEmpty() boolean remove() int size() Object[] toArray() Iterator iterator()

7 Vectors The class Vector has been retrofitted to implement the Collection interface Vector supplies add(Object) and iterator() methods (among others) Let’s look at creating a Vector and iterating through the elements

8 The Iterator interface
interface iterator { // java.lang.util boolean hasNext(); // Returns true if the iteration has more // elements. Object next(); // Returns the next element in the // interation. void remove(); // Removes from the underlying collection // the last element returned by the // iterator (optional operation).

9 Using a Vector Collection numerals = new Vector(); numerals .add("one"); numerals .add("two"); numerals .add("three"); Iterator iter = numerals.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } Results: one two three

10 Using a TreeSet Collection numerals = new TreeSet(); numerals .add("one"); numerals .add("two"); numerals .add("three"); Iterator iter = numerals.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } Results: one three two

11 Conversions Vector v = new Vector(numerals);
TreeSet ts = new TreeSet(v);

12 Back to arrays Arrays are not part of the new Collections Framework, but they haven’t been ignored Java 1.2 introduced the new Arrays class, with some useful operations, for example: static void sort(Object[] a) static int binarySearch(Object[] a, Object key) static boolean equals(Object[] a, Object[] a2) static void fill(Object[] a, Object val) static void fill(Object[] a, Object val, int from, int to) static List asList(Object[] a)

13 What to remember We haven’t really begun to study the Collections framework yet, but— You should learn to use the Iterator interface You should examine and learn more about the Arrays package

14 The End


Download ppt "Collections A First Glimpse 16-Apr-19."

Similar presentations


Ads by Google