Iz E-študij, proste zakladnice študentskega znanja
//Seznam s poljem
public class ListArray extends List {
static final int DEFAULT_LENGTH = 100 ;
private Object elements[] ;
private int lastElement ;
public ListArray() {
this(DEFAULT_LENGTH) ;
}
public ListArray(int noElem) {
elements = new Object[noElem] ;
makenull() ;
}
public void makenull() {
lastElement = -1 ;
}
public Object first() {
return new Integer(0) ;
}
public Object last() {
return new Integer(lastElement) ;
}
public Object next(Object pos) {
return new Integer( ((Integer)pos).intValue() +1) ;
}
public Object retrieve(Object pos) {
return elements[((Integer)pos).intValue()] ;
}
public Object retrieve(int pos) {
return elements[pos] ;
}
public Object previous(Object pos) {
return new Integer( ((Integer)pos).intValue() -1) ;
}
public void insert(Object x) {
insert(x, new Integer(lastElement+1)) ;
}
public void insert(Object x, Object pos) {
int p = ((Integer)pos).intValue() ;
lastElement++ ;
// if (lastElement >= size) // error
// throw new OverflowException ;
for (int i=lastElement ; i > p ; )
elements[i] = elements[--i] ;
elements[p] = x ;
}
public void delete(Object pos) {
for (int i=((Integer)pos).intValue() ; i < lastElement ; )
elements[i] = elements[++i] ;
lastElement -- ;
}
public int length() {
return elements.length ;
}
public Object end() {
return new Integer(lastElement+1) ;
}
public boolean overEnd(Object pos) {
if ( ((Integer)pos).intValue() > lastElement)
return true ;
else return false ;
}
public boolean empty() {
if (lastElement <0)
return true ;
else return false ;
}
public static void main(String[] args) {
ListArray list = new ListArray();
System.out.println("Testing class "+list.getClass() );
int i ;
for (i=10 ; i > 2 ; i--)
list.insert(new Integer(i));
System.out.print("List: ");
list.printList();
Object locator ;
for (i=0 ; i < 5 ; i++) {
locator = list.locate(new Integer(i)) ;
if (locator !=null)
System.out.println("Found "+list.retrieve(locator));
else System.out.println("Not found "+i);
}
for (i=10 ; i > 2 ; i=i-2) {
locator = list.locate(new Integer(i)) ;
if (locator != null) {
list.delete(locator) ;
System.out.println("Deleting "+i);
}
}
System.out.print("List: ");
list.printList();
locator = list.first() ;
locator = list.next(locator) ;
System.out.println("On place 2 is element " + list.retrieve(locator));
}
}