1 / 35

Abstract Data Types

Data Design and Implementation. Abstract Data Types. Definitions of Java TYPES. Atomic or primitive type A data type whose elements are single, non-decomposable data items - e.g , an int or a float variable Composite type :

dympna
Télécharger la présentation

Abstract Data Types

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Design and Implementation Abstract Data Types

  2. Definitions of Java TYPES Atomic or primitive type A data type whose elements are single, non-decomposable data items - e.g, an int or a float variable Composite type : A data type whose elements are composed of multiple data items e.g. A CLASS

  3. Structured composite type • Structured composite type: • An organized collection of components . The organization determines how to access the components of the collection • E.g. An Array or A Tree

  4. Atomic (Simple) and Composite Data Types

  5. Java’s Built-In Types

  6. The Java Class Construct • is used to create composite, unstructured data types. • It is composed of : • 1. named data fields ( instance variables) 2. methods.

  7. An array differs from a class : • An array is ahomogenous structure, whereas classes are heterogeneous structures. E.g. an array of integers has only integers in it. A class has variables of different types and methods

  8. Accessing components • A component of an array is accessed by its position in the array e.g. board[2] [3]

  9. Arrays • Because array components are accessed by position, • an array is a structured composite type.

  10. Component of square: • A component of a class is accessed by an identifier (the object created of it). • Square sq = new Square(10,20, 40, Color.Red); • int x = sq.getX(); • We access the parts of the class with an object

  11. Because class components are accessed by creating an object, • an class is a unstructured composite type.

  12. Definitions Data abstraction: The separation of a data type’s logical properties from its implementation • A doctor sees (abstracts) the person as patient.  E.g. name, height, weight of a person • An employer sees (abstracts) a person as Employee. E.g.name, age,  health, degree of study, of a person.  

  13. Data encapsulation • We can abstract the important characteristics of Person • and store all the characteristics of a person in Person class • The Person class can be used by both the Doctor or Employer classes or ……..others

  14. Abstract Data Type • An abstract data type is an interface • a) it defines a collection of data e.g. an array of clients • b)and the particular operations that are allowed on that array • ( through methods )

  15. ABSTRACT DATA TYPES – ADT’ s • An ADT : • therefore has a name • E.G. A STACK, A QUEUE, An ARRAYLIST • A domain of values(data) - the elements in the stack, items stored in the array in the ArrayList • a set of operations that can be performed (methods) on the data

  16. Collections- Details • A collection is an object that serves as a repository for other objects. • MOST ADT are Collections - since they store the data they are operating on • The Java Collections Framework contains classes that represent collections of objects.

  17. Collections & ADT’s • In general, a collection refers to a class whose role is to: • provide methods to add, remove and • manage the elements that are in the collection.

  18. Collections - ArrayList • The ArrayList classin the Collections Frameworkis implemented with an array. • There is also a SortedArrayList, which maintains the array in sorted order

  19. Collections & ADT’s • Collections can be implemented in a variety of ways. • The ArrayListuses an Array and contains methodsthat perform operations on array. e.g.Adding or deleting items etc.

  20. ADT’s • ADT’scan be implemented with both e.g. arrays or linked lists. • The choice of an array or a linked listdepends upon the implementation

  21. The ArrayList Class • IS Part of the java.util package. • An ArrayList list can grow and shrinkdepending on need. • When the array is full, its size is doubled

  22. ARRAYLIST • ArrayList class: you store variables of type Object. • Or now type T- a generic type built on class Object

  23. ArrayList • An ArrayList has a size() method - how many objects it is currently holding • It has other methods : • add, remove, find , isEmpty etc. See: • http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html

  24. ArrayListOperations

  25. Use Arraylist – unsorted - when: • The amount of space required may change from one execution of the program to the next. • The position of an element in the array list has no relevance to the application. • There is no order to the items stored

  26. Collection Interface & Map Interface

  27. LIST & SET INTERFACEs

  28. public interface List<E> extends Collection<E> • { • E get(int index); • E set(int index, E element); • boolean add(E element); • void add(int index, E element); • E remove(int index); • boolean addAll(int index, Collection<? extends E> c); • int indexOf(Object o); • int lastIndexOf(Object o); • ListIterator<E> listIterator(); ListIterator<E> listIterator(int index); }

  29. Collection Interface-List inherits these methods • public interface Collection<E> extends Iterable<E> { • int size(); • boolean isEmpty(); • boolean contains(Object element); • boolean add(E element); • boolean remove(Object element); • Iterator<E> iterator(); • boolean containsAll(Collection<?> c); • boolean addAll(Collection<? extends E> c); • boolean removeAll(Collection<?> c); • boolean retainAll(Collection<?> c); • void clear(); • public <T> T[] toArray(T[] a);

  30. Designing ADTs this term • Determine the general purpose of your program. • List the specific types of operations the application program performs.

  31. DESIGNING AN ADT • Decide first which ADT to use: • an ArrayList , A Stack? Depends on the problem • Identify a set of public methods to be provided by the ADT class to perform the desired operations

  32. Designing ADTs • Identify potential error situations and classify into • Those that are handled by throwing an exception • Those that are ignored.

  33. Designing ADTs • Define the needed exception classes. • Decide on a protection level for the identified data. • Implement the ADT. ( Using the ARRAYLIST OR STACK • Create a test driver and test your ADT.

  34. Analysis of List Implementations • In both array and linked implementations, • many operations are similar in efficiency • Most are O(1), • except when shifting or searching occurs, in which case they are order O(n) 35

More Related