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);
}
}
}