Java implements the sequential structure of the linear list of functional code
- 2020-04-01 02:22:52
- OfStack
Without further ado, go straight to the code
package com.ncu.list;
public class SquenceList<T> {
private int size; //The length of the linear table
private Object[] listArray;
private int currenSize = 0; //Data in the current linear table
public SquenceList() {
}
public SquenceList(int size) {
this.size = size;
listArray = new Object[size];
}
public void arrayCopy(int index) {
Object newArray[] = new Object[size];
for (int i = 0; i < currenSize; i++) {
if (i >= index) {
newArray[i] = listArray[i + 1];
} else {
newArray[i] = listArray[i];
}
}
listArray = newArray;
newArray = null; //Release resources
}
public void remove(int index) {
index = index - 1;
if (index < 0 || index > currenSize) {
System.out.println(" Linear table indexes cross the line ");
}
if (currenSize == 0) {
System.out.println(" The linear table is empty ");
} else {
currenSize--;
arrayCopy(index);
if (currenSize == 0) {
listArray = null;
}
}
}
public void removeLocate(T element) {
for (int i = 0; i < currenSize;) {
if (element.equals(listArray[i])) {
remove(i + 1);
} else {
i++;
}
}
}
public void add(T element) {
if (currenSize > size || currenSize < 0) {
System.out.println(" Linear table indexes cross the line ");
} else {
listArray[currenSize] = element;
currenSize++;
}
}
private void insert(T element, int index) {
index = index - 1;
if (currenSize > size || currenSize < 0 || index < 0
|| index >= currenSize) {
System.out.println(" Linear table indexes cross the line ");
} else {
Object newArray[] = new Object[size];
for (int i = 0; i < currenSize; i++) {
if (i >= index) {
newArray[index] = element;
newArray[i + 1] = listArray[i];
} else {
newArray[i] = listArray[i];
}
}
listArray = newArray;
newArray = null;
currenSize++;
}
}
public void add(T element, int index) {
if (index == size) {
add(element);
} else {
insert(element, index);
}
}
public void delete() {
if (isEmpty()) {
System.out.println(" The linear table is empty and cannot be deleted ");
} else {
listArray[currenSize - 1] = null;
currenSize--;
}
}
public boolean isEmpty() {
if (currenSize == 0) {
return true;
} else {
return false;
}
}
public T get(int index) {
T obj = null;
if (isEmpty() || index > currenSize || index < 0) {
System.out.println(" The linear table is empty and cannot be deleted ");
} else {
obj = (T) listArray[index - 1];
}
return obj;
}
public void clear() {
size = 0;
currenSize = 0;
}
public int size() {
return currenSize;
}
public void showList() {
if (currenSize > 0) {
for (int i = 0; i < currenSize; i++) {
System.out.println(listArray[i]);
}
} else {
System.out.println(" The linear table is empty ");
}
System.out.println("------------");
}
public static void main(String[] args) {
SquenceList<Integer> list = new SquenceList<Integer>(10);
}
}