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 }