一般数组封装:
packagech01;
publicclassMyArray {
privatelong[]arr;
//表示有效数据的长度
privateintelements;
publicMyArray() {
arr=newlong[50];
}
publicMyArray(intmaxsize) {
arr=newlong[maxsize];
}
/**
* 添加数据
*/
publicvoidinsert(longvalue) {
arr[elements] = value;
elements++;
}
/**
* 显示数据
*/
publicvoiddisplay() {
for(inti = 0; i
}
}
/**
* 查找数据
*/
publicintsearch(longvalue) {
inti;
for(i = 0; i
if(value ==arr[i]) {
break;
}
}
if(i ==elements) {
return-1;
}else{
returni;
}
}
/**
* 查找数据,根据索引来查
*/
publiclongget(intindex) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
returnarr[index];
}
}
/**
* 删除数据
*/
publicvoiddelete(intindex) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
for(inti = index; i
arr[index] =arr[index + 1];
}
elements--;
}
}
/**
* 更新数据
*/
publicvoidchange(intindex,intnewvalue) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
arr[index] = newvalue;
}
}
}
有序数组封装:
packagech01;
publicclassMyOrderArray {
privatelong[]arr;
//表示有效数据的长度
privateintelements;
publicMyOrderArray() {
arr=newlong[50];
}
publicMyOrderArray(intmaxsize) {
arr=newlong[maxsize];
}
/**
* 添加数据
*/
publicvoidinsert(longvalue) {
inti;
for(i = 0; i
if(arr[i] > value) {
break;
}
}
for(intj =elements; j > i; j--) {
arr[j] =arr[j - 1];
}
arr[i] = value;
elements++;
}
/**
* 显示数据
*/
publicvoiddisplay() {
for(inti = 0; i
}
}
/**
* 查找数据(线性数组)
*/
publicintsearch(longvalue) {
inti;
for(i = 0; i
if(value ==arr[i]) {
break;
}
}
if(i ==elements) {
return-1;
}else{
returni;
}
}
/**
* 二分法查找数据(这个数组必须是有序的)
*/
publicintbinarySearch(longvalue) {
intmiddle = 0;
intlow = 0;
intpow =elements;
while(true) {
middle = (pow + low) / 2;
if(arr[middle] == value) {
returnmiddle;
}elseif(low > pow) {
return-1;
}else{
if(arr[middle] > value) {
//往左边继续查
pow = middle - 1;
}else{
//往右边继续查
low = middle + 1;
}
}
}
}
/**
* 查找数据,根据索引来查
*/
publiclongget(intindex) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
returnarr[index];
}
}
/**
* 删除数据
*/
publicvoiddelete(intindex) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
for(inti = index; i
arr[index] =arr[index + 1];
}
elements--;
}
}
/**
* 更新数据
*/
publicvoidchange(intindex,intnewvalue) {
if(index >=elementsindex < 0) {
thrownewArrayIndexOutOfBoundsException();
}else{
arr[index] = newvalue;
}
}
}
领取专属 10元无门槛券
私享最新 技术干货