package util;
/**
* 写两个方法,其中一个方法可以把某个整数插入到整型数组的特定位置,数组中原有元素向后移动
* 另一个方法能够从整形数组中特定位置删除掉一个元素,数组中原有元素向前移动
* @author zhanglu
*/
public class NuberArrayOperator {
/**
* 整数插入到整型数组的特定位置,数组中原有元素向后移动
* @param array
*/
public int[] insertNumber(int[] array,int insertIndex,int insertNumber){
if(array == null || array.length == 0){
System.out.println("数组不存在");
return null;
}
int len = array.length;
if(insertIndex >= len || insertIndex < 0){
System.out.println("插入位置不正确,请重新设置");
return null;
}
int i = 0 ;
for(;i < len;){
if(i == insertIndex){
break;
}
i++;
}
len++;
int[] _array = new int[len];
System.arraycopy(array, 0, _array, 0, array.length);
int j = i;
int temp = 0;
for(;j < _array.length-1;j++){
int t = _array[j+1];
if(temp == 0){
_array[j+1] = _array[j];
}else{
_array[j+1] = temp;
}
temp = t;
}
_array[i] = insertNumber;
return _array;
}
/**
* 整形数组中特定位置删除掉一个元素,
* 数组中原有元素向前移动
*/
public int[] removeArray(int[] array,int removeIndex){
if(array == null || array.length == 0){
System.out.println("数组不存在");
return null;
}
int len = array.length;
if(removeIndex >= len || removeIndex < 0){
System.out.println("没有此索引");
return null;
}
//变相移位法
/*int i = 0;
for(;i < len;i++){
if(i == removeIndex){
break;
}
}
for(int j = i;j < len-1;j++){
array[j] = array[j+1];
}
len--;
int[] _array = new int[len];
for(int k = 0;k < len;k++){
_array[k] = array[k];
}
*/
//替代法
int i = 0;
int[] _array = new int[len-1];
int n = 0;
for(;i < len;i++){
if(i != removeIndex){
_array[n++] = array[i];
}
}
len--;
return _array;
}
}