数组拷贝,可变参数,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         }
原文地址:https://www.cnblogs.com/WestVillagedevil/p/6089243.html