例如数组 int arrys={1,2,3,4,5,}
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答
我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用java.util.Arrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了
不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-17
这种题,其实是考察你对数组的理解。
实际工作上,一般用List。区别在于,List可动态分配空间,数组长度是定死的。
List其实是对数组的封装,底层也是数组。
解决这个问题的思路(假设删除一个元素):
创建一个新的数组,长度为原来数组减1;
循环复制,匹配的不复制,不匹配的复制到新数组;
代码如下:
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.print("删除前:");
show(arr);
// ///////////////////////////////////
int[] brr = new int[arr.length - 1];
int idx = 0;
for (int i : arr) {
if (i != 3) {
brr[idx++] = i;
}
}
// ///////////////////////////////////
System.out.print("删除后:");
show(brr);
}
private static void show(int[] arr) {
for (int i : arr) {
System.out.print(i + ",");
}
System.out.println();
}
}
第2个回答 2015-02-07
free是什么鬼来的,直接用遍历删除就可以啦