刚出来找工作时候,有的面试官问 如何在数据中插入或者等其他操作去操作一个数组,当然了比这个要稍微难点,为了学习数据结构,做一个简单的回顾,为不远将来学习数据结构提前热身一下,代码已写好,
package com.zhimore.array;
public class MyArray {
private long[] arr;
//数组的长度
private int elements;
public MyArray() {
arr = new long[30];//定义数组的长度
}
public MyArray(int elements) {
arr = new long[elements];
}
/**
* 添加数据
*/
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 int search(long value){
for(int i=0;i<elements;i++){
if(arr[i]==value){
return i;
}
}
return -1;
}
/**
* 根据下标进行查询
*/
public long findByIndex(int index){
if(index<0||index>=elements){
throw new ArrayIndexOutOfBoundsException("输入的参数不合法");
}else{
return arr[index];
}
}
/**
* 删除数据
* @param index 数组角标
*/
public void detele(int index){
if(index<0||index>=elements){
throw new ArrayIndexOutOfBoundsException("输入的参数不合法");
}else{
for(int i=index;i<elements;i++){
arr[index] = arr[index+1];
}
elements--;
}
}
/**
* 更新数据
*/
public void update(int index,long value){
if(index<0||index>=elements){
throw new ArrayIndexOutOfBoundsException("输入的参数不合法");
}else{
for(int i=index;i<elements;i++){
arr[index] = value;
}
}
}
}