package com.hu.array;
import java.util.Arrays;
/**
-
超级数组
-
@author ht
-
@date 2021/8/18
**/
public class SuperArray {/**
- 存储元素
/
private int[] element;
/* - 当前索引位置
*/
private int currentIndex = -1;
/**
- 初始化数组
*/
public SuperArray(){
this(10);
}
public SuperArray(int capacity){
element = new int[capacity];
}
/**
- 增加
- @param data
/
public void add(int index,int data){
currentIndex++;
if (currentIndex > element.length-2){
int[] temp = new int[element.length2];
for (int i = 0; i < element.length; i++) {
temp[i] = element[i];
}
element = temp;
}
for (int i = currentIndex; i >= index; i–) {
element[i+1] = element[i];
}
element[index] = data;
}
/**
- 头插
- @param data
*/
public void addToHeader(int data){
this.add(0,data);
}
/**
- 尾插
- @param data
/
public void addToTail(int data){
this.add(currentIndex + 1,data);
}
/* - 删除
- @param index
*/
public void delete(int index) {
if (index < 0 || index > currentIndex-1) {
System.out.println(“你删除的下标[”+index+"]不在范围内!");
}else{
for (int i = index+1; i < element.length; i++) {
element[i-1] = element[i];
}
currentIndex–;
}
}
/**
- 修改
- @param index
- @param data
*/
public void update(int index,int data){
if (index < 0 || index > currentIndex-1) {
System.out.println(“你修改的下标[”+index+"]不在范围内!");
}else{
element[index] = data;
}
}
/**
- 查找
- @param index
- @return
*/
public Integer select(int index){
if (index < 0 || index > currentIndex - 1) {
return null;
}else{
return element[index];
}
}
/**
- 获得当前元素个数
- @return
*/
public int getCurrentIndex(){
return currentIndex+1;
}
public void sort(){
for (int i = 0; i < currentIndex; i++) {
for (int j = 0; j < currentIndex-i; j++) {
if (element[j] > element[j+1]){
int temp = element[j];
element[j] = element[j+1];
element[j+1] = temp;
}
}
}
}@Override
public String toString() {
int[] temp = new int[currentIndex+1];
for (int i = 0; i < currentIndex+1; i++) {
temp[i] = element[i];
}
return Arrays.toString(temp);
}
} - 存储元素