删除数组内元素将剩余元素放到新的数组中

删除数组内0元素将剩余元素放到新的数组中

第一个问题

第一次编写代码时首先考虑的是,外层循环进行对原始数组内需要删除的元素的查询,当元素不符删除要求时吧元素写入新数组,问题出现在这里,因为新数组不能和原始数组使用同一个循环控制变量变量,所以考虑写如第二个循环例如下图:
下面展示一些 内联代码片

   public static void clearzero(int arr[],int arr2[]) {
        int i1 = 0;
        for (int i = 0, j = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                for (; i1 < arr2.length; i1++) {
                    arr2[i1]=arr[i];
                }
            }
        }
    }

毫无疑问代码出现了一些问题,当时数组不等于0时第二次for循环会直接吧新建数组空间直接填满,新数组结果为 1,1,1,1,1 。

第二个问题

还有一个问题感觉挺重要的就是新建数组长度,刚开始没有考虑直接让新建数组长度等于原始数组,即使在多数都不会超过原始数组长度,缺少了减少对内存空间占用的问题考虑。
这一点上需要计算出数组内为0的元素 ,新数组长度为原始数组长度减去数组内为0元素。这一点上对数组占用空间进行了优化。

最终代码


```java
  public  static int count(int arr[]){//数组内0元素的
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==0){
              count++;
            }
        }
        return  count;
    }

    public static void clearzero(int arr[],int arr2[]) {//删除0元素把剩余数组返回到新数组中
        for (int i = 0,j=0; i < arr.length; i++) {
            if(arr[i]!=0){
                arr2[j++]=arr[i];
            }
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值