问题大概是这样的 假如说有一列数组 {1,2,3,4,5,6}
第一次我使用2 这个数字 然后将数字2从数组除去 数组变成{1,3,4,5,6}
第二次我使用5这个数字 然后将数字5从数组除去 数组变成{1,3,4,6}
依次类推
用什么方法可以实现这样的功能呢?
望高手指点一下...
第一次我使用2 这个数字 然后将数字2从数组除去 数组变成{1,3,4,5,6}
第二次我使用5这个数字 然后将数字5从数组除去 数组变成{1,3,4,6}
依次类推
用什么方法可以实现这样的功能呢?
望高手指点一下...
int[] s={1,2,3,4,5,6};
//用的数字
int a=2;
for(int i=0;i<s.length;i++)
{
if(a==s[i])
{
for(int j=i;j<s.length-1;j++)
{
s[j]=j[j+1];
}
}
}
这只是一个思路
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
print(arr);
arr = delete(arr,2);
print(arr);
}
/**
* 打印数组
* @param arr 要打印的数组
*/
public static void print(int[] arr) {
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]);
if(i < arr.length - 1)
System.out.print(",");
}
System.out.println();
}
/**
* 从数组arr中删除数num,返回删除后的数组,如果没有要删除的数,则返回源数组arr
* @param arr 源数组
* @param num 要删除的数
* @return 删除后的数组
*/
public static int[] delete(int[] arr, int num) {
boolean flag = false;
int[] temp = new int[arr.length - 1];
int j = 0;
for(int i=0; i<temp.length; i++) {
if(arr[j] == num) {
flag = true;
i--;
j++;
continue;
}
temp[i] = arr[j];
j++;
}
if(flag)
return temp;
else
return arr;
}
}
建议使用map list 之类的collection 比较方便linkedList 这类的都可以 而且特别方便 就改变一次指针指向就可以删除
而且对其他的数据没有影响你用数组的话,每次删除一个都要重新生成一个数组才行 所以效率就降低了很多