package java.util;
/**
* This is non-public because it's not compatible with the JDK, yet.
*
* @author Sven Köhler
* @param <E> type of the elements
*/
abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
{
//TODO hashCode
public boolean contains(Object o)
{
return this.indexOf(o) >= 0;
}
@Override
public boolean equals(Object o)
{
if (o == this)
return true;
if (!(o instanceof List))
return false;
Iterator<?> it1 = this.iterator();
Iterator<?> it2 = ((List<?>)o).iterator();
boolean n1, n2;
while (true)
{
n1 = it1.hasNext();
n2 = it2.hasNext();
if (!n1 || !n2)
break;
Object o1 = it1.next();
Object o2 = it2.next();
if (o1 == null)
{
if (o2 != null)
{
return false;
}
}
else if (!o1.equals(o2))
{
return false;
}
}
return n1 == n2;
}
public Iterator<E> iterator()
{
return this.listIterator();
}
public ListIterator<E> listIterator()
{
return this.listIterator(0);
}
}