package com.tmx.sequence;
//采用线性表实现一个list集合
public class SeqList<T> extends Object {
private Object[] elements; // 数组
private int n; // 长度
/**
* 构造方法,根据传参创建空表
* @param length
*/
public SeqList(int length) {
this.elements = new Object[length];
this.n = length;
}
/**
* 空参构造将会调用本类已声明的指定参数列表的构造方法 进而创建一个空表,默认长度为64
*/
public SeqList() {
this(64);
}
/**
* 重载构造方法,根据传参确定表长度,并且将数组元素复制到成员变量elements中
* @param values
*/
public SeqList(T[] values) {
this(values.length); // 创建容量为values.length的空表
for (int i = 0; i < values.length; i++) {
this.elements[i] = values[i]; // 复制数组元素
this.n = elements.length;
}
}
/**
* 判断顺序表是否为空,为空则返回true,时间复杂度为O(1)
* @return
*/
public boolean isEmpty() {
return this.n == 0;
}
/**
* 返回顺序表元素个数,时间复杂度为O(1)
* @return
*/
public int size() {
return this.n;
}
/**
* 返回第i个元素,若i越界则返回null,,时间复杂度为O(1)
* @param i
* @return
*/
@SuppressWarnings("unchecked")
public T get(int index) {
if (index >= 0 && index < this.n) {
return (T) this.elements[index];
} else {
return n
顺序表的设计与实现List(Arraylist)
最新推荐文章于 2024-07-20 12:50:02 发布