dk5以后的新特性:
输出变量即可!
}
增强for的出现时替代迭代器的,所以在遍历集合或者遍历数组就可以使用增强for去完成
增强for循环的弊端:如果集合的对象是null,如果再次对集合操作,就会出现异常
对集合进行判断,非空判断解决
ArrayList集合存储自定义对象并遍历,有几种方式?
Iterator iterator() ;
listIterator listiterator();(可以不写)
普通for循环:size()/get(int index)
可变参数:当一个方法的参数个数不确定的时候,要使用可变参数
格式:修饰符 返回值类型 方法名(数据类型...变量名){...}
注意:
1)变量名:看成一个数组
2)使用的时候数据类型...
3)根据具体的需求去完成,一般情况,知道有这个特性就可以了
public static <T> List<T> asList(T... a) :
有一个Java基础班,里面有很多学生,
把一个班级集合:ArrayList<Student>
不止一个Java基础班,这个时候就定义大集合:ArrayList<ArrayList<Student>>
有三个基础班,分别遍历每一个班里面学生信息:(name,age)
举例:
一.增强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); } } }