JDK5以後的新特性---增強for迴圈,靜態匯入,可變引數
阿新 • • 發佈:2019-01-07
一.增強for迴圈的概述
- 增強for迴圈的出現是用來將陣列和集合的遍歷簡單化
- 格式:
for(資料型別(引用型別) 變數名: 陣列或者集合的物件名稱){
輸出變數名;
} - 應用場景:不是集合就是陣列(int型別(建議寫Integer)/String型別的居多)
- 弊端:該物件不能為空;否則報錯:
NullPointerException
:空指標異常
public class Demo6 {
public static void main(String[] args) {
//建立集合物件
ArrayList<Student> al = new ArrayList<Student>();
//建立學生物件
Student s1 = new Student("王一",21);
Student s2 = new Student("王二",22);
Student s3 = new Student("王三",23);
Student s4 = new Student("王四",24);
al.add(s1);
al.add(s2);
al.add(s3);
al.add(s4);
//增強for迴圈遍歷
for(Student s:al){
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
結果:
王一---21
王二---22
王三---23
王四---24
二.靜態匯入
- 格式:例:
import static java.lang.Math.abs;
- 注意:
- 類中有靜態方法,就可以使用靜態匯入
- 如果要使用靜態匯入,為了防止在一個類中出現同名的方法,那麼呼叫的時候需要字首來區別開來
import static java.lang.Math.abs;
import static java.lang.Math.pow;
import static java.lang.Math.sqrt;
public class Demo1 {
public static void main(String[] args) {
System.out.println(abs(-100));
System.out.println(pow(2,3));
System.out.println(sqrt(100));
}
}
三.可變引數
- 可變引數:
- 多個引數其實相當於由陣列組成的一個數據
- 如果一個方法中有多個引數,那麼可變引數指定最後一個引數
- 格式:
修飾符 返回值型別 方法名(引數型別…變數名){
}
public class Demo1 {
public static void main(String[] args) {
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
System.out.println(sum(10,20,30,40));
}
//求未知個數資料之和
//可變引數(相當於一個數組)
public static int sum(int...a){
int s = 0;
for(int x = 0 ; x < a.length ; x ++){
s += a[x];
}
return s;
}
}
四.陣列轉換為集合
- 陣列轉換成集合
Arrays(陣列工具類):public static <T> List<T> asList(T... a)
:將陣列轉換成集合 - 注意:
雖然陣列是可以轉換成集合的,但是此時集合的長度不能改變
import java.util.Arrays;
import java.util.List;
public class Demo2 {
public static void main(String[] args) {
String[] arr = {"hello","world","java"};
//陣列轉換為集合
List<String> list = Arrays.asList(arr);
//給集合中新增元素
//報錯,ava.lang.UnsupportedOperationException
// list.add("javaee");
}
}