【Java学习之路】如何去除数组里面的0
2017-07-21 18:37
260 查看
现有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
思路: 确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容,并将其赋给新开辟的数组。
首先数是有默认值的,比如一个int类型的数组,如果没有赋值的话,它的默认值是0,所以如果一个数组的下标没有写满的话,那么多余出来的值就会是0,这样就与题意不符,所以我们创建的数组的长度正好是oldArr数组去掉0的长度。
我们应该先判断oldArr数组里面有多少个0或者有多少个不为0的数,这样我们就可以直到不为0的有多少个,从而可以一次定义一个等长的数组。
代码如下:
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
思路: 确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容,并将其赋给新开辟的数组。
首先数是有默认值的,比如一个int类型的数组,如果没有赋值的话,它的默认值是0,所以如果一个数组的下标没有写满的话,那么多余出来的值就会是0,这样就与题意不符,所以我们创建的数组的长度正好是oldArr数组去掉0的长度。
我们应该先判断oldArr数组里面有多少个0或者有多少个不为0的数,这样我们就可以直到不为0的有多少个,从而可以一次定义一个等长的数组。
代码如下:
public class Test { 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 h = 0; // 设置一个变量作为增量 // 循环读取oldArr数组的值 for (int b : oldArr) { // 判断,如果oldArr数组的值不为0那么h就加1 if (b != 0) { h++; } } // 得到了数组里不为0的个数,以此个数定义一个新数组,长度就是h int newArr[] = new int[h]; // 这里偷个懒,不想从新定义增量了,所以把增量的值改为0 h = 0; // 在次循环读取oldArr数组的值 for (int c : oldArr) { // 把不为0的值写入到newArr数组里面 if (c != 0) { newArr[h] = c; h++;// h作为newArr数组的下标,没写如一个值,下标h加1 } } // 循环打印newArr数组的值 for (int d : newArr) { System.out.println(d); } } }
相关文章推荐
- 【Solr4.7.0学习笔记】系列之一: java程序里面,如何用submit(非异步)访问solr程序?
- 学习JAVA之路(六、数组)
- 如何学习Java?谈Java学习之路
- java学习之路 之 面向对象编程-数组
- java学习之路 之 面向对象编程-面向对象-数组练习题(1)
- java如何快速得到一个数组里面有多少种元素?
- 黑马程序员 【】java学习之路——关键字、标识符、注释、常量和变量、数组
- java学习之路--java数组--java开发实战经典第四章
- Java基础知识学习之路-05-第四章-流程控制与数组
- java学习之路 - 面向对象编程-数组-练习题(3)
- java基础学习之路-6.数组
- 如何学习Java?谈Java学习之路
- 【java版】数据结构与算法分析学习之路【二】表【数组+链表】
- 黑马程序员java学习—如何获取数组中的最大值
- 如何学习Java?谈Java学习之路
- JAVA学习51_ Java Split如何去除一个空格和多个空格
- 【Solr4.7.0学习笔记】系列之一:java程序里面,如何用ajax访问solr程序?
- java学习之路 之 面向对象编程-数组练习题(2)
- 算法学习之路:分治策略-最大子数组-java实现
- java学习之路 之 面向对象编程-main方法的语法、数组排序、操作数组的工具类、数组操作常见问题