简述: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);
}
}
}