超级数组
package com.ydlclass;
/**
* 超级数组
*/
public class SuperArray {
int [] elements;
int currentIndex = -1;
public SuperArray(){
this(10);
}
public SuperArray(int capacity){
elements = new int[capacity];
}
//对数据增删改
//增加一个元素,尾插
public void add(int data){
//下标自增
currentIndex++;
if (currentIndex > elements.length-1){
int[] temp = new int[elements.length*2];
for (int i = 0; i < elements.length; i++) {
temp[i] = elements[i];
}
elements = temp;
}
elements[currentIndex] = data;
}
//删除数据
public void delete(int index){
if (index < 0 || index > elements.length-1){
System.out.println("您删除的下标["+index+"]不在范围之内。");
}else {
for (int i = index + 1; i < elements.length; i++) {
elements[i - 1] = elements[i];
}
currentIndex --;
}
}
//改变数据
public void set(int index,int data){
if (index < 0 || index > elements.length-1){
System.out.println("您修改的数据下标不存在!");
}else {
elements[index] = data;
}
}
//查找数据
public Integer select(int index){
if (index < 0 || index > elements.length-1){
System.out.println("您查找的下标["+index+"]不在范围之内。");
return null;
}else {
return elements[index];
}
}
//变String数据打印输出
public String arrayToString(){
String result = "[";
for (int i = 0; i <= currentIndex; i++) {
result += elements[i]+",";
}
return result = result.substring(0,result.length()-1)+"]";
}
//排序
public void sort(){
for (int i = 0; i < currentIndex; i++) {
for (int j = 0; j < currentIndex - i; j++) {
if (elements[j] > elements[j + 1]){
int temp = elements[j];
elements[j] = elements[j + 1];
elements[j + 1] = temp;
}
}
}
}
}
package com.ydlclass;
public class Test {
public static void main(String[] args) {
SuperArray superArray = new SuperArray(3);
superArray.add(14);
superArray.add(51);
superArray.add(1);
superArray.add(2);
superArray.delete(8);
superArray.set(2,100);
superArray.sort();
System.out.println(superArray.select(7));
System.out.println(superArray.arrayToString());
}
}
您删除的下标[8]不在范围之内。
您查找的下标[7]不在范围之内。
null
[2,14,51,100]
Process finished with exit code 0