首先定义接口 List<E>
,以下是对每个方法的详细解释:
int size()
: 返回列表中元素的数量。boolean isEmpty()
: 判断列表是否为空,如果为空则返回true,否则返回false。boolean contains(Object o)
: 判断列表是否包含指定的元素,如果包含则返回true,否则返回false。Object[] toArray()
: 将列表转换为一个数组。boolean add(E e)
: 将指定的元素添加到列表的末尾,并返回true。boolean remove(Object o)
: 从列表中移除指定的元素,如果成功移除则返回true,否则返回false。boolean containsAll(List<E> c)
: 判断列表是否包含另一个集合中的所有元素,如果是则返回true,否则返回false。boolean addAll(List<? extends E> c)
: 将另一个集合中的所有元素添加到列表的末尾,如果成功添加则返回true。boolean addAll(int index, List<? extends E> c)
: 在指定位置插入另一个集合中的所有元素。boolean removeAll(List<?> c)
: 移除列表中与另一个集合相同的所有元素。void clear()
: 移除列表中的所有元素,使其为空。E get(int index)
: 返回指定位置的元素。E set(int index, E element)
: 将指定位置的元素替换为新的元素,并返回原来的元素。void add(int index, E element)
: 在指定位置插入一个元素。E remove(int index)
: 移除并返回指定位置的元素。int indexOf(Object o)
: 返回指定元素在列表中第一次出现的位置索引,如果不存在则返回-1。
这个接口定义了列表常用的操作,实现这个接口的类需要提供对应的方法实现,例如ArrayList或LinkedList。
public interface List<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Object[] toArray();
boolean add(E e);
boolean remove(Object o);
boolean containsAll(List<E> c);
boolean addAll(List<? extends E> c);
boolean addAll(int index, List<? extends E> c);
boolean removeAll(List<?> c);
void clear();
E get(int index);
E set(int index, E element);
void add(int index, E element);
E remove(int index);
int indexOf(Object o);
}
接下来定义 TArrayList
,它实现了之前提到的 List
接口。以下是对代码的详细解释:
-
TArrayList
类实现了List
接口,并使用泛型来表示列表的元素类型。 -
类中的成员变量:
value
: 用于存储列表元素的数组,初始长度为零。size
: 当前列表中的元素个数。length
: 表示数组当前的长度,即最大容量。DEFAULT_LENGTH
: 默认的最大容量,设定为20。
private Object[] value = {};//长度为零的数组
private int size;//当下坐标,当前存储的元素个数
private int length;//表示数组当前的长度 最大容器
private static final int DEFAULT_LENGTH = 20;//默认最大容量
-
构造方法
TArrayList(int initiallength)
:- 根据传入的
initiallengt
- 根据传入的