一个数组{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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦