Java方法與陣列
阿新 • • 發佈:2021-08-07
Java方法與陣列
方法:(即c++的函式)
-
修飾符:可選的,定義方法的訪問型別、
-
返回值型別:返回值型別需與return型別一致
-
方法名:小寫開頭,駝峰原則
-
引數型別:形參,可選
-
方法體:定義方法功能
修飾符 返回值型別 方法名(引數型別 引數名) {
...
方法體
...
return 返回值;
}
// 示例程式碼
public static int add(int a, int b){
return a+b;
}
方法呼叫
-
呼叫方法:物件名.方法名(實參列表)
-
有返回值時
int sum = add(10, 20);
-
無返回值
System.out.println("hello world!");
-
方法過載
-
過載:在一個類當中,函式名相同,形參不同
-
過載規則:
-
方法名相同
-
引數列表不同(個數或型別,引數排列順序不同)
-
返回型別可相同也可不同
-
返回型別不同不足以成為方法的過載
-
命令列傳參
-
開啟cmd
-
跳轉到src目錄
-
輸入 java com.Coline.method.Demo this is coline(向main函式傳參)
可變引數
-
在引數型別後加...
-
注意:可變引數需要加引數最後(同python)
// 部分示例程式碼: public static void add(int a,int b, double... numbers){ // 程式碼塊 }
遞迴
少量程式碼解決一些繁瑣問題(代價:基數大會消耗大量空間)
// 部分示例程式碼
// 遞迴解決:階乘問題
public static int function(int a){
if(n == 1){
return 1;
}
return n * f(n-1)
}
陣列:
陣列定義
陣列(引用型別):相同型別資料的有序集合
陣列宣告建立
- 建立格式
dataType[ ] arrayRefVar; 首選方法
或
dataType arrayRefVar[ ]; 效果相同,非首選方法(與c/c++建立陣列一致)
-
Java語言中使用new操作符來建立陣列
dataType[ ] arrayRefVar = new dataType[arraySize];
// 部分程式碼示例 int[] nums1; // 1.宣告陣列 nums1 = new int[10]; // 2.建立陣列 //等效 int[] nums2 = new int[10]; // 宣告 + 建立
-
初始化
-
靜態初始化
int[] a = {1,2,3}; Student[] students = { new Student(18,"張三"), new Students(20, "李四") };
-
動態初始化
int[] a = new int[2]; a[0] = 1; a[1] = 2;
-
預設初始化
-
動態初始化未完全賦值,陣列未賦值部分預設賦值為0(八大基本型別賦值為 0,其他型別賦值為null)
-
記憶體解釋:記憶體中,宣告陣列在棧中壓入陣列名,建立陣列在堆中劃分記憶體建立陣列賦預設值。
-
-
陣列使用
通過for迴圈遍歷
多維陣列
二維陣列:
// 宣告建立 + 賦值
int[][] a = { {1, 2}, {3, 4}, {5, 6} }; // 三行兩列的陣列
Arrays類
Arrays類常用方法:
int[] a = {1, 23, 324, 5}
System.out.println(Arrays.toString(a)) // 列印陣列
Arrays.sort(a) // 陣列排序,升序,在原陣列上直接排序
Arrays.fill(a, formIndex: 2, toIndex: 4, val: 0); // 給指定陣列賦值,取的下標**前開後閉**
equals(a, b) // 比較兩個陣列,若順序數量都相同,則返回true,否則返回false
Arrays.binarySearch(a, val: 1) // 二分法查資料,呼叫前需使用sort方法排序,輸出後返回陣列下標
稀疏陣列
陣列:
0 1 0 0 0
0 0 42 0 0
0 0 0 0 0
0 0 0 23 0
稀疏陣列:
行(row) | 列(col) | 值(value) | |
---|---|---|---|
[0] | 4 | 5 | 3 |
[1] | 1 | 2 | 1 |
[2] | 2 | 3 | 42 |
[3] | 4 | 4 | 23 |
第0行儲存總行數和總列數和有多少個非0項
- 將陣列壓縮成稀疏陣列
- 儲存(節省大量空間)
- 將稀疏陣列解壓成陣列