JAVA数据结构:自定义ArrayList通过接口List实现数组

本文详细介绍了Java中的List接口,特别是TArrayList类的实现,涵盖了大小调整、添加、移除、判断元素存在以及数组转换等关键操作。
摘要由CSDN通过智能技术生成

首先定义接口 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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值