Starting code for Linked List class

OurList interface that OurLinkedList implements:



/**
OurList interface is modeled after the List interface in the 
Java Collections Framework. The prefix "Our" is to avoid name 
clashes with the standard Java interfaces and classes.

Author: Elena Machkasova
Purpose: to be used in CSci 2101 UMM course
**/

public interface OurList<E> /* extends Iterable<E> */ {
    /**
     * @return true if this list contains no elements, 
     * false otherwise
     */
	public boolean isEmpty();
	
    /**
     * Returns the number of elements in this list. 
     * @return the number of elements in this list
     */
    public int size();
    
    /**
     * Inserts the specified element at the specified index in this list 
     * @param index - the index where to insert the element
     * @param item - the item to be inserted
     * @throws ListIndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).
     */
    public void add(int index, E item) throws ListIndexOutOfBoundsException;
    
    /**
     * Returns the element at the specified position in this list.
     * @param index - the index of the element to be returned
     * @return - the element at the specified position in this list.
     * @throws ListIndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).
     */
    public E get(int index) throws ListIndexOutOfBoundsException;
    
    /**
     * Removes the element at the specified position in this list. 
     * Shifts any subsequent elements to the left (subtracts one from their indices). 
     * @param index - the index of the element to removed.
     * @throws ListIndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).
     */ 
    public void remove(int index) throws ListIndexOutOfBoundsException;
    
    /**
     * Removes all of the elements from this list (optional operation). 
     * This list will be empty after this call returns.
     * @return
     */
    public void clear();
	
}

ListIndexOutOfBoundsException


public class ListIndexOutOfBoundsException extends Exception {
    /**
       Default constructor
     **/
	public ListIndexOutOfBoundsException() {
		// if we overwrite a non-default constructor, 
		// we have to overwrite the default one as well
		super();
	}

    /**
       Constructor that sets the message
     **/
	public ListIndexOutOfBoundsException(String message) {
		// passing the message to the constructor of the superclass
		super(message);
	}
}

Testing code for OurLinkedList (we don't have the class itself yet!)


/**
The class tests methods of a linked list OurLinkedList via its 
interface OurList
**/

public class TestOurLinkedList {
	public static void main(String [] args) throws ListIndexOutOfBoundsException {
		OurList<String> strings = new OurLinkedList<String>();
		
		// the list should be empty initially
		System.out.println("A newly-created list:");
		// expected: true
		System.out.println("List isEmpty is " + strings.isEmpty());
		//expected: The size of the list is 0
		System.out.println("The size of the list is " + strings.size());
		
		strings.add(0,"hello");
		
		// the list after adding an element
		System.out.println("A list with one element:");
		// expected: false
		System.out.println("List isEmpty is "+ strings.isEmpty());
		//expected: The size of the list is 1
		System.out.println("The size of the list is " + strings.size());
		
		strings.add(1,"bye");
		strings.add(2,"greetings!");
		
		// the list after adding 3 elements
		System.out.println("A list with three elements:");
		// expected: false
		System.out.println("List isEmpty is "+ strings.isEmpty());
		//expected: The size of the list is 3
		System.out.println("The size of the list is " + strings.size());
		
		// testing add and get methods
		System.out.println("After adding three strings the list is");
		for(int i = 0; i < strings.size(); ++i) {
			String s = strings.get(i);
			System.out.println(s);
		}
		
		
		// test exception
		try {
			strings.get(55);
		} catch (ListIndexOutOfBoundsException e) {
			System.out.println(e);
		}

		//much more testing is needed!
	}
}

CSci 2101 course web site.

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.