zoukankan      html  css  js  c++  java
  • 数组拷贝,可变参数,foreach

     1 import java.util.Arrays;//手动导入
     2 
     3 //不要导入System类,主要是因为java.lang下的类会被自动导入,不需要我们手动导入
     4 public  class CopyArrayDemo
     5 {
     6     public static void main(String[] args)
     7     {    
     8         //运行的时候:
     9         //java  CopyArrayDemo  值1  值2 ...
    10         for(int i = 0; i < args.length; i++)
    11         {
    12             String c = args[i];
    13             System.out.println("-->" + args[i]);
    14         }
    15 
    16         String[] src = {"A","B","C","D"};
    17 
    18         String[] dest = new String[5];
    19 
    20         System.out.println(Arrays.toString(dest));
    21         
    22         //数组的拷贝
    23         System.arraycopy(src,1,dest,2,2);
    24         System.out.println(Arrays.toString(dest));
    25 
    26         //如果叫你来写一个int类型的一维数组的拷贝方法,你怎么写?
    27         //static void arraycopy(int[] src, int srcPos, int[] dest, int destPos, int length) 
    28     }
    29 
    30     //完成数组的拷贝
    31     //把一个数组里指定的元素拷贝到另外一个数组里去
    32     
    33     /*
    34     System类:
    35         static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
    36         
    37 
    38         参数:
    39             src - 源数组。
    40             srcPos - 源数组中的起始位置。
    41             dest - 目标数组。
    42             destPos - 目标数据中的起始位置。
    43             length - 要复制的数组元素的数量。 
    44 
    45     */
    46     
    47 }

    1,不需要导入System类,主要是因为java.lang下的类会被自动导入,不需要我们手动导入

    2,Java使用native方法来扩展Java程序的功能,操作系统底层

     1 class VarArgsDemo 
     2 {
     3     public static void main(String[] args) 
     4     {
     5         
     6         //可变参数其实本质上就是数组
     7         int[] arr = new int[]{1,2,3,4,5,6,7};
     8 
     9         //int ret = getSum(arr);
    10         //  ret = getSum(1,2,3,4,5,6,7);
    11 
    12         //可变参数还有自己特殊的调用法,参数可以直接传递 0 到N个
    13 
    14         //int ret  = getSum("Will",arr);
    15         int ret  = getSum("Will",1,2,3,4,5,6,7);
    16         System.out.println("-->"+ ret );
    17     }
    18     
    19     /*
    20         Java5开始出现了一个 可变参数,参数个数;
    21 
    22         static int getSum(int[] arr){}
    23             等价于
    24         static int getSum(int ... arr){}
    25 
    26     
    27     static int getSum(int[] arr)
    28     {
    29         return 0;
    30     }
    31 */    
    32     //可变参数 特点:可变参数必须作为方法的最后一个参数,
    33     static int getSum(String name,int ... arr)
    34     {
    35         //System.out.println(arr);
    36         int sum = 0;
    37         for(int i = 0; i < arr.length; i++)
    38         {
    39             sum += arr[i];
    40         }
    41         
    42         return sum;
    43     }
    44 }

    可变参数特点:

    (1)只能出现在参数列表的最后; 

    (2)...位于变量类型和变量名之间,前后有无空格都可以;

    (3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

    可变参数本质是就是数组

     1 class ForeachDemo 
     2 {
     3     public static void main(String[] args) 
     4     {
     5         int[] arr = {1,3,5,7,9,11};
     6 
     7         for(int i = 0; i < arr.length; i ++)
     8         {
     9             System.out.println(arr[i]);
    10         }
    11 
    12         /*
    13             Java5开始,提供了一个foreach的循环,  增强for循环
    14 
    15             格式:  
    16                         for(元素类型 变量: 数组名 或 Iterable的实例)
    17                         {
    18                         
    19                         }
    20         */
    21             //int[] arr = {1,3,5,7,9,11};
    22             for(int temp: arr)
    23             {    
    24                 //temp每次循环都会接收元素值
    25                 System.out.println("元素值=  " + temp);
    26             }
    27 
    28             char[][] cArr = 
    29                 {
    30                     {'送','孟','浩','然','之','广','陵'},
    31                     {'故','人','西','辞','黄','鹤','楼'},
    32                     {'烟','花','三','月','下','扬','州'},
    33                     {'孤','帆','远','影','碧','空','尽'},
    34                     {'惟','见','长','江','天','际','流'}
    35                 };
    36 
    37             for(char[] c: cArr)
    38             {
    39                 for(char c2 : c)
    40                 {
    41                     System.out.print(c2);
    42                 }
    43                 System.out.println();
    44             }
    45     }
    46 }
     1         //以三种方式遍历集合List
     2         
     3         List<String> list = new ArrayList<String>();
     4         
     5         list.add("a");
     6         list.add("b");
     7         list.add("c");
     8         
     9         System.out.println("----------方式1-----------");
    10         //第一种方式,普通for循环
    11         for(int i = 0; i < list.size(); i++)
    12         {
    13             System.out.println(list.get(i));
    14             
    15         }
    16         
    17         System.out.println("----------方式2-----------");
    18         //第二种方式,使用迭代器
    19         for(Iterator<String> iter = list.iterator(); iter.hasNext();)
    20         {
    21             System.out.println(iter.next());
    22         }
    23         System.out.println("----------方式3-----------");
    24         //第三种方式,使用增强型的for循环
    25         for(String str: list)
    26         {
    27             System.out.println(str);
    28             
    29         }
  • 相关阅读:
    yum下载安装mysql服务
    windows编写sh脚本在linux上不能执行
    ectouch第二讲之 文件结构
    ecshop第一讲之安装
    class id 区别
    thinkphp模板中截取中文字符串的方法分享
    CI 配置验证规则
    CodeIgniter配置之config
    codeigniter中base_url和site_url
    使用phpmyadmin导入SQL数据报错:#1062
  • 原文地址:https://www.cnblogs.com/WestVillagedevil/p/6089243.html
Copyright © 2011-2022 走看看