java实现顺序表SequenceList
package wh1006.datastructure.train;
import java.util.Iterator;
public class SequenceList<T> implements Iterable{
private T[] eles;
private int N;
public SequenceList(int capacity){
this.eles = (T[]) new Object[capacity];
this.N = 0;
}
public void clear(){
this.N =0;
}
public boolean isEmpty(){
return N==0;
}
public int length(){
return N;
}
public T get(int i){
return eles[i];
}
public void resize(int newSize){
T[] temp = eles;
eles = (T[]) new Object[newSize];
for (int i = 0; i < eles.length; i++) {
eles[i] = temp[i];
}
}
public void insert(T t){
if(N==eles.length){
resize(N*2);
}
eles[N] = t;
N++;
}
public void insert(int i,T t){
if(N==eles.length){
resize(N*2);
}
N++;
for (int j = N-1; j >= i ; j--) {
eles[j+1] = eles[j];
}
}
public T remove(int i){
T t = eles[i];
for (int j = i; j <eles.length-1; j++) {
eles[j] = eles[j+1];
}
N--;
return t;
}
public void remove(T t){
int j = 0;
for (int i = 0; i < eles.length; i++) {
if(eles[i] == t){
j = i;
}
}
for (int z = j;z<eles.length-1;z++){
eles[z] = eles[z+1];
}
N--;
}
@Override
public Iterator iterator() {
return new SItrator();
}
private class SItrator implements Iterator{
private int cursor = 0;
@Override
public boolean hasNext() {
return N==cursor;
}
@Override
public Object next() {
return eles[cursor++];
}
}
}