第1个回答 2013-04-29
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class T {
public static void main(String[] args) {
int[] array = new int[] { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(array));
array = deleteByValue(array, 4);
System.out.println(Arrays.toString(array));
array = deleteByIndex(array, 0);
System.out.println(Arrays.toString(array));
}
public static int[] deleteByIndex(int[] array, int index) {
int[] newArray = new int[array.length - 1];
for (int i = 0; i < newArray.length; i++) {
if (i < index) {
newArray[i] = array[i];
} else {
newArray[i] = array[i + 1];
}
}
return newArray;
}
public static int[] deleteByValue(int[] array, int value) {
List<Integer> list = new ArrayList();
for (int i : array) {
if (i != value) {
list.add(i);
}
}
int[] newArray = new int[list.size()];
for (int i = 0; i < newArray.length; i++) {
newArray[i] = list.get(i);
}
return newArray;
}
}
第2个回答 推荐于2017-10-09
public class $ {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 4 };
show(arr);
arr = remove(arr, 4);
show(arr);
}
// 一次只能删除一个元素
private static int[] remove(int[] arr, int num) {
int[] tmp = new int[arr.length - 1];
int idx = 0;
boolean hasRemove = false;
for (int i = 0; i < arr.length; i++) {
if (!hasRemove && arr[i] == num) {
hasRemove = true;
continue;
}
tmp[idx++] = arr[i];
}
return tmp;
}
private static void show(int[] arr) {
for (int i : arr) {
System.out.print(i + ",");
}
System.out.println();
}
}