java之jdk5新特性

  dk5以后的新特性:

一.增强for

二.静态导入

三.可变参数

四.泛型

五.自动拆装箱...

  一.增强for循环

增强for循环的格式

   for(数据大类型  变量名 : 数组或者集合对象名){
输出变量即可!
  }
  增强for的出现时替代迭代器的,所以在遍历集合或者遍历数组就可以使用增强for去完成
  增强for循环的弊端:如果集合的对象是null,如果再次对集合操作,就会出现异常
   对集合进行判断,非空判断解决
  ArrayList集合存储自定义对象并遍历,有几种方式?
   Iterator iterator() ;
  listIterator listiterator();(可以不写)
   普通for循环:size()/get(int index)

   增强for循环

二.静态导入
 静态导入特点:
  1)前提是该方法必须是静态的
  2)导入到的一个方法的级别
 静态导入的格式:
 import static 包名.类名.方法名;
 import static java.util.ArrayList.add;   方法必须是静态方法
 常用类中哪个类中静态方法最多:Math

 之前导包:java.util.Scanner;   导入到类的级别

举例:

import static java.lang.Math.abs;
public class StaticDemo {
public static void main(String[] args) {
	System.out.println(Math.abs(-100));
	System.out.println(Math.pow(2, 3));
	System.out.println(java.lang.Math.abs(-100));
	////在测试,直接写方法名,前提静态导入
	System.out.println(abs(-100));
}
}
三.可变参数
 可变参数:当一个方法的参数个数不确定的时候,要使用可变参数
  格式:修饰符 返回值类型  方法名(数据类型...变量名){...}
  注意:
  1)变量名:看成一个数组
  2)使用的时候数据类型...
 3)根据具体的需求去完成,一般情况,知道有这个特性就可以了

 求数据之和

举例:

* @author 田伟
 *
 */
public class ArgsDemo {
public static void main(String[] args) {
	int a=20;
	int b=20;
	int c=20;
	int d=20;
	int e=20;
	int result=sum(a,b,c,d,e);
	System.out.println(result);
}
public static int sum(int...a) {
	int result=0;
	for(int n:a) {
		result+=n;
	}
	return result;
}
}
针对数组操作的工具类:Arrays,提供了一个方法:
  public static <T> List<T> asList(T... a) :

  将数组转换成固定大小的集合

举例:

 * @author 田伟
 *
 */
public class ArraysDemo {
public static void main(String[] args) {
	List<String> list=Arrays.asList("hello","WORLD","JAVA");
list.set(0, "HELLO");
for(String s:list) {
	System.out.println(s);
}
}
}
需求集合的嵌套遍历
有一个Java基础班,里面有很多学生,
把一个班级集合:ArrayList<Student>
不止一个Java基础班,这个时候就定义大集合:ArrayList<ArrayList<Student>>
有三个基础班,分别遍历每一个班里面学生信息:(name,age) 
举例:
public class ArrayListTest1 {
public static void main(String[] args) {
	ArrayList<ArrayList<Student>> arr=new ArrayList<ArrayList<Student>>();
	ArrayList<Student> arr1= new ArrayList<Student>() ;
	Student s1=new Student ("霍建华",28);
    Student s2=new Student ("张杰",29);
    Student s3=new Student ("王菲",25);
    Student s4=new Student ("张靓颖",24);
    arr1.add(s1) ;
	arr1.add(s2) ;
	arr1.add(s3) ;
	arr1.add(s4) ;
	arr.add(arr1);
    ArrayList<Student> arr2= new ArrayList<Student>() ;
    Student s11=new Student ("霍建华",28);
    Student s22=new Student ("张杰",29);
    Student s33=new Student ("王菲",25);
    Student s44=new Student ("张靓颖",24);
    arr2.add(s11);
    arr2.add(s22);
    arr2.add(s33);
    arr2.add(s44);
    arr.add(arr2);
    ArrayList<Student> arr3= new ArrayList<Student>() ;
    Student s12=new Student ("霍建华",28);
    Student s23=new Student ("张杰",29);
    Student s34=new Student ("王菲",25);
    Student s45=new Student ("张靓颖",24);
    arr3.add(s12);
    arr3.add(s23);
    arr3.add(s34);
    arr3.add(s45);
    arr.add(arr3);
    for(ArrayList<Student> s:arr) {
    	System.out.println(s);
    }
}
}

猜你喜欢

转载自blog.csdn.net/wt5264/article/details/80272269