JavaEE學習日誌持續更新----> 必看!JavaEE學習路線(文章總彙)
可變參數
JDK1.5之後的新特性
作用:當我們定義方法的時候,方法參數的數據類型已經確定,但是參數的個數不確定,就可以使用可變參數
格式
修飾符 返回值類型 方法名(數據類型...變量名){
方法體;
}
底層原理
數據類型…變量名,傳遞參數個數可以是任意個(0,1,2,…n),會根據傳遞參數的個數,創建一個對應的數字,來存儲這些參數,可以把可變參數看成一個數組,只是這個數組會根據參數個數產生變化
示例
public class Demo01 {
public static void main(String[] args) {
//int sum = getSum();
//int sum = getSum(10);
//int sum = getSum(10,20);
int sum = getSum(10,20,30,40,50,60,70,80,90,100);
System.out.println(sum);
}
//getSum(),會創建一個長度爲0的數組,存儲參數int[] arr = new int[]{}
//getSum(10),會創建一個長度爲1的數組,存儲參數int[] arr = new int[]{10}
//getSum(10,20),會創建一個長度爲2的數組,存儲參數int[] arr = new int[]{10,20}
//getSum(10,20,30,40,50,60,70,80,90,100),會創建一個長度爲10的數組,存儲參數int[] arr = new int[]{10,20,30,40,50,60,70,80,90,100}
private static int getSum(int... arr) {
//System.out.println(arr);//[I@5fd0d5ae
//System.out.println(arr.length);
//定義一個變量,初始值爲0,記錄累加求和
int sum = 0;
for (int i : arr) {
//累加和求
sum += i;
}
return sum;
}
}
注意事項
- 一個參數列表中,只能包含一個可變參數
public static void method(int...a,int...b){}//報錯
- 參數列表中有多個參數,可變參數需要寫在末尾
public static void method(int a,String b,double d,int...arr){}
- 可變參數終極寫法
public static void method(Object...o){}
debug斷點調試
作用:
- 查找程序執行的流程
- 調試程序運行過程中出現的一些問題
使用步驟:
- 在行號的左邊,鼠標左鍵單擊增加一個斷點
- 右鍵debug執行
- 程序就會停止到添加的第一個斷點處
快捷鍵:
- F8:逐行執行代碼
- F7:進入到方法中
- Shift+F8:跳出方法
- F9:跳到下一個斷點,沒有下一個斷點,程序結束
- Ctrl+F2:停止debug,也會停止程序
- console:切換到控制檯
- variables:顯示程序中所有變量的區域
靜態導入
JDK1.5新特性,靜態導入
作用:減少開發的代碼量
標準寫法:導入包的時候才能使用
import static java.lang.System.out;
最末尾(out),必須是一個靜態成員
示例
import java.util.ArrayList;
import static java.util.Collections.sort;
import static java.lang.System.out;
public class Demo01 {
public static void main(String[] args) {
out.println(1);//System.out.println(1);
out.println(2);
ArrayList<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
sort(list);//Collections.sort(list);
out.println(list);
}
}
集合嵌套
集合可以隨意嵌套(Map可以嵌套Collection,Collection也可嵌套Map)
示例
public class Demo01 {
public static void main(String[] args) {
//定義一個存儲省份名稱和城市的Map集合
Map<String, ArrayList<String>> map = new HashMap<>();
//創建存儲城使的ArrayList<String>集合
ArrayList<String> hb = new ArrayList<>();
hb.add("石家莊");
hb.add("張家口");
hb.add("承德");
hb.add("邯鄲");
ArrayList<String> nmg = new ArrayList<>();
nmg.add("呼和浩特");
nmg.add("包頭");
nmg.add("赤峯");
nmg.add("錫林郭勒");
ArrayList<String> gd = new ArrayList<>();
gd.add("深圳");
gd.add("廣州");
gd.add("東莞");
gd.add("赤峯");
//添加到map中
map.put("河北省",hb);
map.put("內蒙古",nmg);
map.put("廣東省",gd);
//遍歷map集合:keySet+增強for
Set<String> set = map.keySet();
for (String key : set) {
//通過key獲取value
ArrayList<String> value = map.get(key);
//遍歷ArrayList集合
for (String cityName : value) {
System.out.println(key+"-->"+cityName);
}
}
}
}