美文网首页
day15_foreach增强for循环_数组元素拷贝

day15_foreach增强for循环_数组元素拷贝

作者: 雷阳洪 | 来源:发表于2019-03-01 17:51 被阅读3次

    增强for循环_foreach

    image.png
    //增强for循环-foreach
    class ForeachDemo 
    {
        public static void main(String[] args) 
        {
            int[] arr =new int []{10,20,30,40,50};
            //使用循环迭代出数组中的每一个元素
            for (int index = 0;index < arr.length ;index ++ )
            {
                System.out.print(arr[index]+ " ");
            }
            System.out.println();
            System.out.println("----------------------------");
            for (int index : arr )
            {
                System.out.println(index+" ");
            }
        }
    }
    

    方法的可变参数

    编写一个方法,统计一个数组传递过来的总和

    //方法的可变参数
    class VarArgsDemo 
    {
        public static void main(String[] args) 
        {
            //double[] ps = new double[]{0.8,10.0,20.0,30.0,40.0,50.0};
            double sum=getSum(0.8,10.0,20.0,30.0,40.0,50.0);
            System.out.println(sum);
        }
        //计算商品总和并且打8折
        static double getSum(double cutoff,double ... arr)
        {
            double sum = 0.0;
            for (double price : arr )
            {
                sum = sum +price;
            }
    
            return sum * cutoff;
        }
    }
    
    

    数组元素拷贝

    class ArrayCopeDemo 
    {
        public static void main(String[] args) 
        {
            int[] src = new int[]{1,2,3,4,5,6,7,8,9,10};//源数组
            int[] dest = new int[10];//目标数组
            //需求:从src数组中拷贝3,4,5,6元素到dest数组中
            printArray(dest);//[0,0,0,0,0,0,0,0,0,0]
            copy(src,2,dest,5,4);//拷贝操作
            printArray(dest);//[0,0,0,0,0,3,4,5,6,0]
        }
        /*
            参数: src:    源数组
                    srcPos  从源数组中哪一个索引位置开始拷贝
                    dest    目标数组
                    destPos 在目标数组哪一个索引位置开始粘贴
                    length  拷贝元素的个数 
        */
        static void copy(int[] src,int srcPos,int[] dest,int destPos,int length)
        {
            /*
            //拷贝3
            dest[destPos]=src[srcPos];
            //拷贝4
            srcPos++; destPos++;
            dest[destPos]=src[srcPos];
            //拷贝5
            srcPos++; destPos++;
            dest[destPos]=src[srcPos];
            //拷贝6
            srcPos++; destPos++;
            dest[destPos]=src[srcPos];
            */
            //优化后的代码
            //i等于每次需要拷贝元素的索引
            for (int i = srcPos;i < srcPos + length;i ++ )
            {
                    dest[destPos] = src[i];
                    destPos++;
            }
        }
        static void printArray(int[] arr)
        {
            //思路:先打印数组"[]",再获取arr数组里面的元素,然后再做if判断,判断如果当前i的值不是最后一个索引,则拼接
            if (arr == null)
            {
                System.out.println("null");
                return;
            }
            String ret = "[";
            for (int i = 0;i < arr.length ;i ++ )
            {
                ret = ret + arr[i];
                //如果当前i不是最后一个索引,则拼接", "
                if (i != arr.length - 1)
                {
                    ret = ret + ", ";
                }
            }
            ret = ret  +  "]";
    
            System.out.println(ret);
        }
    }
    

    相关文章

      网友评论

          本文标题:day15_foreach增强for循环_数组元素拷贝

          本文链接:https://www.haomeiwen.com/subject/ztdduqtx.html