在Java 语言中,具有两大类数据类型;首先是基础数据类型,另外还有的引用类型。Java 中有一种特殊的数组引用类型,它具有以下特性:
1、java 数组本身来说是一个引用类型,定义以及初始化之后数组的长度不再改变。
2、java 数组不变是说由array variable 所指向的内存中的数组不会发生变化,而该 array variable 可以灵活的指向别的存在于堆内存的其他数组。
由以上特性我们可以推测出想要删除原始数组中的特定元素不能简单的实现,以下方法是当输入的数组元素不重复时删除特定数组的简单实现:
public class ArrUtils {
private int[] arr;
public int[] getArr(){
return arr;
}
public void setArr(int[] arrList){
arr = arrList;
}
public int[] delete(int target){
int[] middleArr = new int[arr.length];
int[] resultArr;
int k = 0,numOfTarget = 0;
for(int ele:arr) {
if(ele != target) {
middleArr[k] = ele;
k++;
}else{
numOfTarget++;
}
}
if(numOfTarget == 0){
resultArr = new int[ arr.length ];
}else{
resultArr = new int[arr.length - numOfTarget];
}
int i = 0;
for(int j = 0;j < middleArr.length;j++) {
if(middleArr[j] != 0) {
resultArr[i] = middleArr[j];
++i;
}
}
return resultArr;
}
}
以上方法中创建一个简单的实用类ArrUtils,利用它来封装好普通数组;然后利用中间数组来承接原始数组中的非目标元素的所有元素,最后再利用 resultArr 来获取中间数组的非0元素,因此获得剔除目标元素的结果数组!