JAVA数组元素是0的话,怎么把他去掉!其他元素不变

如题所述

import java.util.ArrayList;import java.util.List;
public class test{
public static void main(String args[]) {
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
List<Integer> newArr = new ArrayList<Integer>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr.add(oldArr[i]);
}
}
for (int i = 0; i < newArr.size(); i++) {
System.out.print(newArr.get(i));
}
}
}

学数组怎么能不学List,自己研究研究,这东西都一个样追问

但是我们还没学List啊~~~换个方法呗,要不会被老师看穿的!

追答

public class test{
public static void main(String args[]) {
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
int count = 0;
// 求新数组长度count
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
count++;
}
}
// 定义新数组newArr
int newArr[] = new int[count];
//新数组下标j
int j = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr[j] = oldArr[i];
j++;
}
}
for (int i = 0; i < count; i++) {
System.out.print(newArr[i]);
}
}
}

略恶心啊,就用数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-14
希望能帮助到你!

public static void main(String[] args) {

int [] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};

//非0个数
int count=0;

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

if(oldArr[i]!=0){

count =count+1;

}
}

int [] newArr =new int[count];
int j=0;

for(int i=0;i<oldArr.length;i++){
//非0数,加入新的数组中
if(oldArr[i]!=0){

newArr[j]=oldArr[i];
j++;
}
}

}追问

最后在那一点加入输出新数组啊?

追答

得到新的数组后,你就可以随便操作新数组了。

第2个回答  2013-01-14
for循环,从后往前判断是否为0,为零就把后面的前移追问

怎么把0这个元素去掉啊?

追答

后面的数前移,把0元素对应位置的值变了,就等于是去掉了

第3个回答  2013-01-14
不使用list实现的

int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,0,5,6};
int vv[]=oldArr.clone();
Arrays.sort(vv);
int arr0=Arrays.binarySearch(vv, 0);
int newArr[]=new int[oldArr.length-arr0-1] ;
int j=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
System.out.println(Arrays.toString(newArr));

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网