为了账号安全,请及时绑定邮箱和手机立即绑定

删除数组中的某个(多个)元素(分别用数组和集合的办法删除)

标签:
Java 测试

一个数组{11,22,1,33,1,1,44,55,66,1,77,1,1,88}
要求将其中为1的元素值给去掉,通过合适的代码得到如下的新数组
{11,22,33,44,55,66,77,88}

在群里遇到了这个问题,开始觉得很简单,因为有集合啊。不过突然想到如果单独用数组解决的话,就有点难度了,特别是1不止一个。

用数组的时候还纠结于怎么定义新的数组的长度,后来被人提醒才明白。根本不用管它,只要不小于原来的数组,使他盛不下新的数组,导致数组越界就行。

在输出的时候再解决它。

使用集合的方法:

public static void main(String[] args) {

        int a[]={11,22,1,33,1,1,44,55,66,1,77,1,1,88};

        List list =new ArrayList();

        for (int i = 0; i < a.length; i++) {

            if (a[i]!=1) {

                list.add(a[i]);
            }

        }

        for (Object object : list) {
            System.out.print(object+" ");
        }
        }

这个简答,不必细说。

先说下我开始的代码:

int a[]={11,22,1,33,1,1,44,55,66,1,77,1,1,88};

        int c[]=new int[a.length];

        int i=0;
        int count=0;
        for (int aa:a) {
            if (aa!=1) {

                c[i]=aa;
                i++;

            }           
        }

        for ( i = 0; i < c.length; i++) {
            System.out.print(c[i]+",");
        }

这样的结果 11,22,33,44,55,66,77,88,0,0,0,0,0,

多了几个0.

怎么把0去掉。

添加一个变量,约束新的数组输出。

int a[]={11,22,1,33,1,1,44,55,66,1,77,1,1,88};

    int c[]=new int[a.length];

    int i=0;
    int count=0;
    for (int aa:a) {
        if (aa!=1) {

            c[i]=aa;
            i++;
            count++;
        }           
    }

    for ( i = 0; i < count; i++) {
        System.out.print(c[i]+",");
    }

不知道这算不算投机。没有实现新的数组,只是实现了数值的输出。

那如果数组需要删除你多个不同元素呢?

比如:

int a[]={11,22,1,33,1,1,44,2,2,55,3,66,1,77,1,1,88};

删除数组中的1,2,3、很简单,只需要修改if()条件就行。
if (aa!=1&&aa!=2&&aa!=3)
具体的就不写了。

点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消