java中 如何在一个数组中删除里面的元素
例如数组intarrys={1,2,3,4,5,}如何删除“3”这个元素,可以用free吗?怎么用?求大神解答...
例如数组 int arrys={1,2,3,4,5,}
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答 展开
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答 展开
3个回答
展开全部
我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用java.util.Arrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了
不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
展开全部
这种题,其实是考察你对数组的理解。
实际工作上,一般用List。区别在于,List可动态分配空间,数组长度是定死的。
List其实是对数组的封装,底层也是数组。
解决这个问题的思路(假设删除一个元素):
创建一个新的数组,长度为原来数组减1;
循环复制,匹配的不复制,不匹配的复制到新数组;
代码如下:
public class $ {
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-02-07
展开全部
free是什么鬼来的,直接用遍历删除就可以啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询