java中 如何在一个数组中删除里面的元素

例如数组intarrys={1,2,3,4,5,}如何删除“3”这个元素,可以用free吗?怎么用?求大神解答... 例如数组 int arrys={1,2,3,4,5,}
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答
展开
 我来答
寻麋儿
推荐于2017-09-16 · TA获得超过637个赞
知道小有建树答主
回答量:232
采纳率:100%
帮助的人:222万
展开全部
我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用java.util.Arrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了

不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
历盆郁7
推荐于2017-09-17 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:950万
展开全部
  1. 这种题,其实是考察你对数组的理解。

  2. 实际工作上,一般用List。区别在于,List可动态分配空间,数组长度是定死的。

  3. List其实是对数组的封装,底层也是数组。

  4. 解决这个问题的思路(假设删除一个元素):

    • 创建一个新的数组,长度为原来数组减1;

    • 循环复制,匹配的不复制,不匹配的复制到新数组;

  5. 代码如下:


    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是什么鬼来的,直接用遍历删除就可以啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式