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

例如数组 int arrys={1,2,3,4,5,}
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答

我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用java.util.Arrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了

不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17

    这种题,其实是考察你对数组的理解。

    实际工作上,一般用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();
        }
    }

第2个回答  2015-02-07
free是什么鬼来的,直接用遍历删除就可以啦
相似回答