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

2019-03-01  本文已影响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);
    }
}
上一篇下一篇

猜你喜欢

热点阅读