JDK1.5后新特性

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

}

猜你喜欢

转载自blog.csdn.net/latesummer_/article/details/80199446