package com.jwetherell.algorithms.data_structures.interfaces; /** * A list or sequence is an abstract data type that implements an ordered * collection of values, where the same value may occur more than once. * * http://en.wikipedia.org/wiki/List_(computing) * * @author Justin Wetherell */ public interface IList { /** * Add value to list. * * @param value to add. * @return True if added. */ public boolean add(T value); /** * Remove value from list. * * @param value to remove. * @return True if removed. */ public boolean remove(T value); /** * Clear the entire list. */ public void clear(); /** * Does the list contain value. * * @param value to search list for. * @return True if list contains value. */ public boolean contains(T value); /** * Size of the list. * * @return size of the list. */ public int size(); /** * Validate the list according to the invariants. * * @return True if the list is valid. */ public boolean validate(); /** * Get this List as a Java compatible List * * @return Java compatible List */ public java.util.List toList(); /** * Get this List as a Java compatible Collection * * @return Java compatible Collection */ public java.util.Collection toCollection(); }