1 Java's Collection Framework By Rick Mercer with help from The Java Tutorial, The Collections Trail, by Joshua BlockThe Collections Trail.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 5 The Collections API.
Advertisements

Introduction to Computation and Problem Solving Class 32: The Java® Collections Framework Prof. Steven R. Lerman and Dr. V. Judson Harward.
Transparency No. 1 Java Collection API : Built-in Data Structures for Java.
Lists and the Collection Interface Chapter 4. Chapter Objectives To become familiar with the List interface To understand how to write an array-based.
JAVA Programming (Session 7) When you are willing to make sacrifices for a great cause, you will never be alone. Instructor:
Data Structures A data structure is a collection of data organized in some fashion that permits access to individual elements stored in the structure This.
Collections Framework A very brief look at Java’s Collection Framework David Davenport May 2010.
Java Collections Framework COMP53 Oct 24, Collections Framework A unified architecture for representing and manipulating collections Allows collections.
1 L43 Collections (3). 2 OBJECTIVES  To use the collections framework interfaces to program with collections polymorphically.  To use iterators to “walk.
1 L41 Collections (1). 2 OBJECTIVES  What collections are.  To use class Arrays for array manipulations.  To use the collections framework (prepackaged.
Lists and the Collection Interface Chapter 4. Chapter 4: Lists and the Collection Interface2 Chapter Objectives To become familiar with the List interface.
24-Jun-15 Introduction to Collections. 2 Collections A collection is a structured group of objects Java 1.2 introduced the Collections Framework Collections.
Fall 2007CS 2251 Lists and the Collection Interface Chapter 4.
© The McGraw-Hill Companies, 2006 Chapter 17 The Java Collections Framework.
Data Structures & Java Collections Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L15 (Chapter 22) Java Collections.
The Java Collections Package C. DeJong Fall 2001.
Chapter 10 2D Arrays Collection Classes. Topics Arrays with more than one dimension Java Collections API ArrayList Map.
CSE 143 Lecture 7 Sets and Maps reading: ; 13.2 slides created by Marty Stepp
Chapter 19 Java Data Structures
Java Collections. Collections, Iterators, Algorithms CollectionsIteratorsAlgorithms.
CSE373 Optional Section Java Collections 11/12/2013 Luyi Lu.
Java's Collection Framework
SEG4110 – Advanced Software Design and Reengineering TOPIC G Java Collections Framework.
Java Collections Framework A presentation by Eric Fabricant.
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
CS2110: SW Development Methods Textbook readings: MSD, Chapter 8 (Sect. 8.1 and 8.2) But we won’t implement our own, so study the section on Java’s Map.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 22 Java Collections.
Collections F The limitations of arrays F Java Collection Framework hierarchy  Use the Iterator interface to traverse a collection  Set interface, HashSet,
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 22 Java Collections.
Java™ How to Program, 9/e Presented by: Dr. José M. Reyes Álamo © Copyright by Pearson Education, Inc. All Rights Reserved.
Collections in Java. Kinds of Collections Collection --a group of objects, called elements –Set-- An unordered collection with no duplicates SortedSet.
(c) University of Washington14-1 CSC 143 Java Collections.
3-1 Polymorphism with Java Interfaces Rick Mercer.
Jan 12, 2012 Introduction to Collections. 2 Collections A collection is a structured group of objects Java 1.2 introduced the Collections Framework Collections.
Big Java Chapter 16.
111 © 2002, Cisco Systems, Inc. All rights reserved.
CSS446 Spring 2014 Nan Wang.  Java Collection Framework ◦ Set ◦ Map 2.
Chapter 18 Java Collections Framework
תוכנה 1 תרגול 8 – מבני נתונים גנריים. 2 Java Collections Framework Collection: a group of elements Interface Based Design: Java Collections Framework.
Data structures and algorithms in the collection framework 1.
Java.util.Vector Brian Toone 10/3/07 Updated 10/10/07.
Arrays, ArrayLists, and Collections. Rationale Suppose we have a program to compute the average of three numbers. We could write a simple little method.
3-February-2003cse Collections © 2003 University of Washington1 Java Collections CSE 403, Winter 2003 Software Engineering
1 Collections Framework A collections framework is a unified architecture for representing and manipulating collections. All collections frameworks contain:
1 Interfaces in Java’s Collection Framework Rick Mercer.
Collections Data structures in Java. OBJECTIVE “ WHEN TO USE WHICH DATA STRUCTURE ” D e b u g.
Collections Mrs. C. Furman April 21, Collection Classes ArrayList and LinkedList implements List HashSet implements Set TreeSet implements SortedSet.
CS Ananda Gunawardena.  A collection (sometimes called a container) is simply an object that groups multiple elements into a single unit.  Collections.
Priority Queues. Priority Queue ADT A priority queue stores a collection of entries Each entry is a pair (key, value) Main methods of the Priority Queue.
1 Java's Collection Framework Map and Sets. 2 Collection Framework  A collections framework is a unified architecture for representing and manipulating.
CMSC 202 Containers and Iterators. Container Definition A “container” is a data structure whose purpose is to hold objects. Most languages support several.
AD Lecture #3 Java Collection Framework 1.
1 Copyright © 2011 Tata Consultancy Services Limited COLLECTIONS By TEAM 5 Rajendhiran Sivan Christi Yashwanth Bijay Smruthi Satyajit.
University of Limerick1 Collections The Collection Framework.
1 Maps, Stacks and Queues Maps Reading:  2 nd Ed: 20.4, 21.2, 21.7  3 rd Ed: 15.4, 16.2, 16.7 Additional references: Online Java Tutorial at
Liang, Introduction to Java Programming, Tenth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 21 Sets and Maps.
Collections Dwight Deugo Nesa Matic
3-1 Java's Collection Framework Another use of polymorphism and interfaces Rick Mercer.
Lecture 9:FXML and Useful Java Collections Michael Hsu CSULA.
Introduction to Java Collection. Java Collections What are they? –A number of pre-packaged implementations of common ‘container’ classes, such as LinkedLists,
©Karsten Lundqvist Example: Array and Arrays 1 import java.util.*; public class Example { private int intValues[] = { 1, 2, 3, 4, 5, 6 }; private double.
Collections ABCD ABCD Head Node Tail Node array doubly linked list Traditional Arrays and linked list: Below is memory representation of traditional.
Chapter 21 Sets and Maps Jung Soo (Sue) Lim Cal State LA.
Using the Java Collection Libraries COMP 103 # T2
Chapter 19 Java Data Structures
University of Central Florida COP 3330 Object Oriented Programming
Interfaces in Java’s Collection Framework
CSE 1020: The Collection Framework
Presentation transcript:

1 Java's Collection Framework By Rick Mercer with help from The Java Tutorial, The Collections Trail, by Joshua BlockThe Collections Trail

2 Overview Framework (in software): a general system of components and architectural solutions that provides development tools to programmers for use with a relatively wide range of applications. Collection: (hmm...) any collection of elements

3 Collection Framework  A collections framework is a unified architecture for representing and manipulating collections. It has: –Interfaces: abstract data types representing collections –Implementations: concrete implementations of the collection interfaces –Algorithms: methods that perform useful computations, such as searching and sorting These algorithms are said to be polymorphic: the same method can be used on different implementations

4 Interfaces  An interface describes a set of methods: –no constructors or instance variables  Interfaces must be implemented by classes –646 java classes implement >= 1 interfaces (‘02)  2 or more classes implement an interface –Classes guaranteed to have the same methods –Objects can be treated as the same type –Can use different algorithms / instance variables

5 Collection interfaces Queue since Java 5 Click here for a Annotated Outline of Collections FrameworkAnnotated Outline of Collections Framework

6 Implementations  A collection class –implements an ADT as a Java class –implements all methods of the interface –selects appropriate instance variables –can be instantiated  Java implements interfaces with – List: ArrayList, LinkedList, Vector – Map: HashMap, TreeMap – Set: TreeSet, HashSet

7 Algorithms  Java has polymorphic algorithms to provide functionality for different types of collections –Sorting (e.g. sort)Sorting –Shuffling (e.g. shuffle)Shuffling –Routine Data Manipulation (e.g. reverse, addAll)Routine Data Manipulation –Searching (e.g. binarySearch)Searching –Composition (e.g. frequency)Composition –Finding Extreme Values (e.g. max)Finding Extreme Values

8 Two Useful ADTs  List: a collection with a first element, a last element, distinct predecessors and successors –duplicates that "equals" each other are allowed  Map: maps keys to values Map –Maps cannot contain duplicate keys –Each key maps at most one value

9 List  A list is –a collection of elements (numbers, strings, accounts, pictures,…) –ordered (a sequence): there is a first, and a last element lists can be empty – no elements –elements with a unique predecessor and successor –also known as a sequence  Peruse the Java 5 List InterfaceList Interface

10 ArrayList A Java Collection Class that Implements List  ArrayList –stores a collection of any type of object –can be all the same type, or different types –similar functionality to an array, but does not use subscripts –is an indexed collection  The next slide is part of Sun's documentation

11 ArrayList Java  Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List interface, this class provides methods to manipulate the size of the array that is used internally to store the list. The size, isEmpty, get, set, iterator, and listIterator operations run in constant time. The add operation runs in amortized constant time, that is, adding n elements requires O(n) time. All of the other operations run in linear time (roughly speaking). The constant factor is low compared to that for the LinkedList implementation.

12 List implemented by 3 classes // Interface name: List // Three classes that implement the List interface: List bigList = new ArrayList (); List littleList = new LinkedList (); List sharedList = new Vector (); // All three have an add method bigList.add("in array list"); littleList.add("in linked list"); sharedList.add("in vector"); // All three have a get method assertEquals("in array list", bigList.get(0)); assertEquals("in linked list", littleList.get(0)); assertEquals("in vector", sharedList.get(0));

13 Java 5 Generics  A List can be made to store only one type List accountList = new ArrayList (); accountList.add(new BankAccount("One", )); accountList.add(new BankAccount("Two", )); accountList.add(new BankAccount("Three", )); accountList.add(new BankAccount("Four", )); System.out.println(accountList.toString()); Output [One $111.11, Two $222.22, Three $333.33, Four $444.44]

14 Iterators  Iterators provide a general way to traverse all elements in a collection ArrayList list = new ArrayList (); list.add("1-FiRsT"); list.add("2-SeCoND"); list.add("3-ThIrD"); Iterator itr = list.iterator(); while (itr.hasNext()) { System.out.println(itr.next().toLowerCase()); } Output 1-first 2-second 3-third

15 Map and SortedMap  The Map interface defines methodsMap interface – get, put, contains, keySet, values, entrySet  TreeMap implements Map –put, get, remove: O(log n)  HashMap implements Map –put, get, remove: O(1)

16 Set and SortedSet  Some Map methods return Set  The Set interface – add, addAll, remove, size, but no get !  Some implementations – TreeSet : values stored in order, O(log n) – HashSet : values in a hash table, no order, O(1)

17 Let's play  Set up a small collection of mappings Map tm = new TreeMap (); tm.put("M", new BankAccount("Michel", )); tm.put("G", new BankAccount("Georgie", )); tm.put("S", new BankAccount("Sam", )); tm.put("P", new BankAccount("Pei", )); tm.put("Z", new BankAccount("Zac", )); // Coming up: Some Map methods

18 keySet() // Get the set of keys in the Map. // With TreeMap, the keys are ordered. Set keys = tm.keySet(); assertEquals("[G, M, P, S, Z]", keys.toString());

19 values() // The values Collection accountCollection = tm.values(); Iterator itr = accountCollection.iterator(); double allTheMoney = 0.0; while (itr.hasNext()) { allTheMoney += itr.next().getBalance(); } assertEquals( , allTheMoney, 0.01);

20 entrySet() // The mappings Collection > mapping = tm.entrySet(); Iterator > itr2 = mapping.iterator(); while (itr2.hasNext()) { System.out.print("<" +itr2.next().toString() + "> "); }

21 Enhanced for Loop  for can iterate over collections for (Type element : collection) { element is the next thing visited for each iteration } ArrayList names = new ArrayList (); names.add("Aaron"); names.add("Moksha"); names.add("Drew"); names.add("Qiyam"); for (String name : names) System.out.print(name + " "); Output Aaron Moksha Drew Qiyam

22 Use for over iterator Collection accountCollection = tm.values(); double allTheMoney = 0.0; for (BankAccount nextAccount : accountCollection) allTheMoney += nextAccount.getBalance(); assertEquals( , allTheMoney, 0.01);

23 Algorithms  See the Java API for the Collections classCollections –play with sort, binarySearch, reverse, shuffle your choice