当前位置: 代码迷 >> J2SE >> 一个java数组赋值的有关问题
  详细解决方案

一个java数组赋值的有关问题

热度:113   发布时间:2016-04-24 02:30:39.0
一个java数组赋值的问题
Java code
public class xiti{    public static void main(String args[]){        int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};        //newArr = new int[oldArr.length];        int newArr[] = null;        int x = 0;  //newArr数组键位的基数        for(int i = 0 ; i < oldArr.length ; i ++ ){            if(oldArr[i] == 0){ //不知该如何删除数组中的索引                oldArr[i] = null;            }else{                x++;                System.out.println("现在的x是"+x);  //程序第一次循环能执行到这里                newArr[x] = oldArr[i];  //到这里必定报main错,原因应该是newArr[x]  这个用法有误            }        }        System.out.println("oldArr去除0后变成了:");        for(int i:oldArr){            System.out.print(i+"+");        }        System.out.println("新数组newArr的样子为:");        for(int i:newArr){            System.out.print(i+"+");        }    }}

这段代码总在newArr[x] 这种赋值的地方出现问题,请问我应该怎么改?

------解决方案--------------------
java跟php不一样,int数组里面的值不可能赋值为null,除非你声明 Integer数组,对于为0的元素不可能剔除,除非新建一个数组,下面是实现的demo

Java code
public class Xiti {    public static void main(String args[]){            int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};            //newArr = new int[oldArr.length];            int newArr[] = null;            int x = 0;  //newArr数组键位的基数          //计算非零元素的数目           for(int i:oldArr){               if(i!=0)                   x++;           }           newArr=new int[x];            for(int i = 0 ,j=0; i < oldArr.length ; i ++ ){                if(oldArr[i] != 0){                     newArr[j] = oldArr[i];                    j++;                }            }            System.out.println("oldArr:");            for(int i:oldArr){                System.out.print(i+",");            }            System.out.println("新数组newArr的样子为:");            for(int i:newArr){                System.out.print(i+",");            }        }}
  相关解决方案