package com.travelsky.array;
/**无序数组
* @author huangyu
*
*/
public class MyArray {
//声明一个数组
private long[] arr;
//有效数据的长度
private int elements;
//无参构造函数,默认长度为50
public MyArray(){
arr = new long[50];
}
public MyArray(int maxsize){
arr = new long[maxsize];
}
/**
* 添加数据
*/
public void insert(long value){
arr[elements] = value;
elements++;
}
/**
* 显示数据
*/
public void display(){
System.out.print("[");
for(int i = 0;i < elements;i++){
System.out.print(arr[i] + " ");
}
System.out.println("]");
}
/**
* 根据下标查找数据
*/
public long get(int index){
if(index >= elements || index < 0){
throw new ArrayIndexOutOfBoundsException();
}else{
return arr[index];
}
}
/**
* 根据值查询
* @param value 需要被查询的值
* @return 被查询值的下标
*/
public int search(int value){
//声明一个变量i用来记录该数据的下标值
int i ;
for(i = 0;i < elements;i++){
if(value == arr[i]){
break;
}
}
//如果查询到最后一个元素依然没有找到
if(i == elements){
return -1;
}else{
return i;
}
}
/**
* 根据下标删除数据
*/
public void delete(int index){
if(index >= elements || index < 0){
throw new ArrayIndexOutOfBoundsException();
}else{
//删除该元素后,后面所有元素前移一位
for(int i = index; i < elements;i++){
arr[i] = arr[i+1];
}
elements--;
}
}
/**
* 替换数据
* @param index 被替换的下标
* @param newvalue 新的数据
*/
public void change(int index,int newvalue){
if(index >= elements || index < 0){
throw new ArrayIndexOutOfBoundsException();
}else{
arr[index] = newvalue;
}
}
}