Академический Документы
Профессиональный Документы
Культура Документы
Chapter Objectives
2
Learn about lists Explore how various operations, such as search, insert, and remove, on lists are implemented Learn how to design and implement a generic class to process various types of lists Become aware of the class Vector
Array-Based Lists
3
List: A collection of elements of the same type Length of list is number of elements in list
Create the list: initialize to an empty state Determine whether the list is empty Determine whether the list is full Find the size of the list Destroy (clear) the list Determine whether an item is the same as a given list element
Insert an item in the list at the specified location Remove an item from the list at the specified location Replace an item at the specified location with another item Retrieve an item from the list at the specified location Search the list for a given item
class Object directly or indirectly becomes a superclass of every Java class, user defined or built in Reference variable of Object type can refer to any object of any class class DataElement, superclass of every class specifying data type of list elements Abstract methods of class DataElement: equals, compareTo, makeCopy, and getCopy
class IntElement used when list of integers is manipulated class DoubleElement used when list of decimal numbers is manipulated class StringElement used when list of strings is manipulated
class IntElement
9
class StringElement
10
class ArrayListClass
11
An abstract class Is a superclass of the classes that implement a list Has three instance variables
length: specifies the number of elements currently in the list maxSize: specifies the maximum number of elements that can be processed by the list list: an array of reference variables
class ArrayListClass
12
public boolean isEmpty() { return (length == 0); } public boolean isFull() { return (length == maxSize); }
public int listSize() { return length; } public int maxListSize() { return maxSize; }
14
public void insertAt(int location, DataElement insertItem) { if(location < 0 || location >= maxSize) System.err.println(The position of the item to + be inserted is out of range); else if(length >= maxSize) //list is full System.err.println(Cannot insert in a full list.); else { for(int i = length; i > location; i--) list[i] = list[i - 1]; //move the elements down list[location] = insertItem.getCopy(); //insert the //item at the specified position length++; //increment the length } }//end insertAt
16
System.err.println(Cannot insert in a full list.); else { list[length] = insertItem.getCopy(); //insert item //at end length++; } }//end insertEnd //increment the length
17
18
19
Definition of ArrayListClass
20
public abstract class ArrayListClass { protected int length; //to store the length //of the list protected int maxSize; //to store the maximum //size of the list protected DataElement[] list; //array to hold //list elements //Place the definitions of the instance // methods and abstract methods here. }
Unordered List
21
class UnorderedArrayList is a subclass of the class ArrayListClass Elements are not necessarily sorted class UnorderedList implements operations search, insert, and remove
class UnorderedArrayList
22
Search
23
Search
24
public int seqSearch(DataElement searchItem) { int loc; boolean found = false; for(loc = 0; loc < length; loc++) if(list[loc].equals(searchItem)) { found = true; break; } if(found) return loc; else return -1; }//end seqSearch
Insert
a new item in the list Uses method seqSearch to determine whether insertItem is already in list
Inserts
Remove
deletes
an item from the list uses the methods seqSearch and removeAt to remove an item from the list
Insert
26
public void insert(DataElement insertItem) { int loc; if(length == 0) //list is empty list[length++] = insertItem; //insert the item and //increment the length else if(length == maxSize) System.err.println(Cannot insert in a full list.); else { loc = seqSearch(insertItem); if(loc == -1) //the item to be inserted //does not exist in the list list[length++] = insertItem.getCopy(); else System.err.println(The item to be inserted is + already in the list. No + duplicates are allowed.); } }//end insert
Remove
27
public void remove(DataElement removeItem) { int loc; if(length == 0) System.err.println(Cannot delete from an empty list.); else { loc = seqSearch(removeItem); if(loc != -1) removeAt(loc); else System.out.println(The item to be deleted is + not in the list.); } }//end remove
Vectors
28
Class Vector can be used to implement a list Unlike array, size of Vector object can grow/shrink during program execution Do not need to worry about number of data elements in vector
protected int elementCount; protected Object[] elementData; public Vector() public Vector (int size) public void addElement (Object insertObj) public void insertElementAt (Object insertObj, int index) public Object clone ( ) public boolean contains (Object obj)
public void copyInto (Object[] dest) public Object elementAt (int index) public Object firstElement () public Object lastElement () public int indexOf (Object obj) public int indexOf (Object obj, int index) public boolean isEmpty () public int lastIndexOf (Object obj) public int lastIndexOf (Object obj)
public int lastIndexOf (Object item, int index) public void removeAllElements ( ) public boolean removeElement (Object obj) public void removeElementAt (int index) public void setElementAt (Object obj, int index) public int size ( ) public String toString ( )
Vectors
32
Every element of Vector object is reference variable of type Object To add element into Vector object
Create
appropriate object Store data into object Store address of object holding data into Vector object element
Vector StringList
33
Vector StringList
34
stringList.addElement(Cool, 1);
Purpose: To design and implement the class Polynomial to perform various polynomial operations in a program Program implements the following polynomial operations: 1. Evaluate a polynomial at a given value 2. Add polynomials 3. Subtract polynomials 4. Multiply polynomials
37
Chapter Summary
38
Operations performed on a list Type of list elements Abstract class DataElement Classes IntElement, DoubleElement, StringElement class ArrayListClass
Definitions of Nonabstract Methods of ArrayListClass Definition of ArrayListClass
Chapter Summary
39
Programming examples