简述:JDK1.5新特性:自动拆装箱、泛型、增强for循环、静态方法导入、可变参数、枚举
一、 增强for循环
增强for概述
简化数组和Collection集合的遍历
格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
好处:简化遍历
注意事项:增强for的目标要判断是否为null
把前面的集合代码的遍历用增强for改进
package com.shulian_01; import java.util.ArrayList; /* * JDK1.5新特性:自动拆装箱、泛型、增强for循环、静态方法导入、可变参数、枚举 * * 增强for循环:就是for循环的一种 * * 格式: * for(元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素 } 好处:简化遍历 */ public class ForDemo { public static void main(String[] args) { int[] arrs = {1,2,3,4,5}; //以前的写法 for(int i=0;i<arrs.length;i++){ System.out.println(arrs[i]); } System.out.println("-----------------"); //增强for循环 for(int i : arrs){ System.out.println(i); } System.out.println("-----------------"); String[] arrs2 = {"hello","world","java"}; //增强for循环 for(String s : arrs2){ System.out.println(s); } System.out.println("-----------------"); ArrayList<String> al = new ArrayList<String>(); al.add("hello"); al.add("world"); al.add("java"); //以前的for写法 for(int i=0;i<al.size();i++){ System.out.println(al.get(i)); } System.out.println("-----------------"); //增强for循环 for(String s : al){ System.out.println(s); } } }
增强for循环注意事项
package com.shulian_01; import java.util.ArrayList; /* * 注意事项:增强for的目标要判断是否为null */ public class ForDemo2 { public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); al.add("hello"); al.add("world"); al.add("java"); //al = null; if(null != al){ //增强for循环 for(String s : al){ if(s.equals("world")){ al.add("javaee"); } //System.out.println(s); } } } }
二、静态导入
格式:import static 包名….类名.方法名;
可以直接导入到方法的级别
注意事项
方法必须是静态的
如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。
package com.shulian_02; /* * 格式:import static 包名….类名.方法名; 可以直接导入到方法的级别 * 注意事项 方法必须是静态的 如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。 */ //import java.lang.Math; import static java.lang.Math.abs; import static java.lang.Math.max; //import static java.util.Random.nextInt; public class StaticImport { public static void main(String[] args) { // System.out.println(java.lang.Math.abs(-10)); // System.out.println(java.lang.Math.max(10, 20)); // // System.out.println(Math.abs(-10)); // System.out.println(Math.max(10, 20)); System.out.println(Math.abs(-10)); System.out.println(max(10,20)); } public static void abs(){ } }
三、可变参数概述
可变参数概述
定义方法的时候不知道该定义多少个参数
格式
修饰符 返回值类型 方法名(数据类型… 变量名){}
注意:
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
package com.shulian_03; /* * 可变参数概述 定义方法的时候不知道该定义多少个参数 格式 修饰符 返回值类型 方法名(数据类型… 变量名){} 注意: 这里的变量其实是一个数组 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 */ public class ArgsDemo { public static void main(String[] args) { //求2个数的和 int a = 10; int b = 20; int c = 30; int d = 40; System.out.println(sum(a,b)); //求3个数的和 System.out.println(sum(a,b,c)); //求4个数的和 System.out.println(sum(a,b,c,d)); //求5个数的和 System.out.println(sum(a,b,c,d,50)); //求6个数的和 System.out.println(sum(a,b,c,d,50,60)); System.out.println(sum(10,20,30,40,50,60,70)); int[] arrs = {1,2,3,4,5}; System.out.println(sum(arrs)); } // public static int sum(int a,int b){ // return a + b; // } // // public static int sum(int a,int b,int c){ // return a + b + c; // } // // public static int sum(int a,int b,int c,int d){ // return a + b + c + d; // } public static int sum(int... args){ int result = 0; for(int i : args){ result += i; } return result; } }四、Arrays工具类中的一个方法
public static <T> List<T> asList(T... a)
package com.shulian04; import java.util.Arrays; import java.util.List; /* * Arrays工具类中的一个方法 public static <T> List<T> asList(T... a) */ public class ArraysDemo { public static void main(String[] args) { // String[] arrs = {"hello","world","java"}; // // List<String> lis = Arrays.asList(arrs); List<String> lis = Arrays.asList("hello","world","java"); //java.lang.UnsupportedOperationException //lis.add("javaee"); //lis.remove(1); //lis.set(1, "world11"); for(String s : lis){ System.out.println(s); } } }