黑马程序员技术交流社区

标题: 数组输出,求指点 [打印本页]

作者: 1243382506    时间: 2016-7-30 22:35
标题: 数组输出,求指点
现有一个数组 int[] arr1={4,3,1,5,0,6,0,0,6,5,7,6,7,8,4,9,9,0,5,8};要求:(1)将此数组中值为零的项去掉,把其他值存入新数组 int[] arr2 中;(2)将新数组中值相同的项去掉,生成一个新的数组 int[] arr3;(3)遍历两个新的数组。


作者: 1243382506    时间: 2016-7-30 22:36
跪求大神指点
作者: it老菜鸟    时间: 2016-7-30 22:52
public class MyArrays {
        static int count = 0;
        public static void main(String[] args) {
                //1.定义数组
                int[] arr = {4,3,1,5,0,6,0,0,6,5,7,6,7,8,4,9,9,0,5,8};
                //2.先建立一个长度和原数组相同的数组
                int[] arr2 = new int[arr.length];
                //3.遍历原数组将不重复的元素放到新数组中
                //3.1在遍历时定义临时变量,统计有效元素的个数
                for(int i = 0;i<arr.length;i++) {
                        //判断该元素在新数组中是否存在
                        if(!containsElement(arr2, arr[i])) {
                                arr2[count++] = arr[i];
                        }
                }
                //4.根据有效元素的个数定义第三个数组
                int[] arr3 = new int[count];
                //4.1将第二个数组中的元素拷贝到第三个数组中
                for(int i = 0;i<count;i++) {
                        arr3[i] = arr2[i];
                }
                //打印去重之后的数组
                //[1, 2, 3, 5, 6, 7]
                //System.out.println(Arrays.toString(arr3));
                toString(arr3);
        }
       
        public static void toString(int[] arr) {
                //[1, 2, 3, 5, 6, 7]
                for(int i = 0;i<arr.length;i++) {
                        if(i==0){
                                System.out.print("["+arr[i]+", ");
                        } else if(i==arr.length-1) {
                                System.out.println(arr[i]+"]");
                        } else {
                                System.out.print(arr[i]+", ");
                        }
                }
        }
        /*
         * 判断数组中是否存在某元素
         * 存在返回:true
         * 不存在返回:false
         */
        public static boolean containsElement(int[] arr,int num) {
               
                for(int i = 0;i<count;i++) {
                        if(arr[i]==num)
                                return true;
                }
                return false;
        }
}
作者: it老菜鸟    时间: 2016-7-30 22:53
去0太简单了  直接加一个判断是否为0 是 就加continue就行
作者: 1243382506    时间: 2016-7-31 09:14
it老菜鸟 发表于 2016-7-30 22:52
public class MyArrays {
        static int count = 0;
        public static void main(String[] args) {

多谢指点
作者: 1243382506    时间: 2016-7-31 09:16
it老菜鸟 发表于 2016-7-30 22:52
public class MyArrays {
        static int count = 0;
        public static void main(String[] args) {

多谢指点{:3_64:}
作者: 18248119733    时间: 2016-7-31 10:02
你做出来了吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2