小白求救,数组问题,望大神不吝赐教,代码如下
public class Test003 {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
		int newArr[] = new int[12];
		for (int i = 0; i < oldArr.length; i++) {
			if (oldArr[i] == 0) {
				i++;
				continue;
			}
			int j = 0;
			newArr[j] = oldArr[i];
			j++;
		}
		for (int k = 0; k < newArr.length; k++)
			System.out.print(newArr[k] + " ");
	}
}
我想实现一个功能,新建一个用于存放结果的数组,然后查找原数组中为0的值,去掉,将去掉0后的值存入新数组,写了如下代码,为什么输出结果是7 0 0 0 0 0 0 0 0 0 0 0?求大神指点,我哪里错了?还有,如果数据量很多,开头肯定不可能知道去掉0后数组还剩12个,怎么使用可变量代替数字?求教
              
------解决方案--------------------你每次执行循环语句是都会执行 int j=0;每次newarr[0]=oldarr[i];所以开头是7,后面的没有值默认为0;
------解决方案--------------------用list吧,然后在转换成数组
------解决方案--------------------
public static void main(String[] args) {
		int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
		int newArr[] = new int[12];
		int j = 0;
		for (int i = 0; i < oldArr.length; i++) {
			if (oldArr[i] == 0) {
				continue;
			}
			newArr[j] = oldArr[i];
			j++;
		}
		for (int k = 0; k < newArr.length; k++)
			System.out.print(newArr[k] + " ");
	}
------解决方案--------------------
public static void main(String[] args) {
		int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };