1. 程式人生 > 其它 >Java方法與陣列

Java方法與陣列

Java方法與陣列

方法:(即c++的函式)

  • 修飾符可選的,定義方法的訪問型別

  • 返回值型別返回值型別需與return型別一致

  • 方法名小寫開頭,駝峰原則

  • 引數型別形參可選

  • 方法體:定義方法功能

修飾符 返回值型別 方法名(引數型別 引數名) {

...

方法體

...

return 返回值;

}

// 示例程式碼
    public static int add(int a, int b){
        return a+b;
    }

方法呼叫

  • 呼叫方法:物件名.方法名(實參列表)

    1. 有返回值

      int sum = add(10, 20);
      
    2. 無返回值

      System.out.println("hello world!");
      

方法過載

  • 過載:在一個類當中,函式名相同形參不同

  • 過載規則

    1. 方法名相同

    2. 引數列表不同個數型別引數排列順序不同)

    3. 返回型別相同可不同

    4. 返回型別不同不足以成為方法的過載

命令列傳參

  1. 開啟cmd

  2. 跳轉到src目錄

  3. 輸入 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];  // 宣告 + 建立
    
  • 初始化

    1. 靜態初始化

      int[] a = {1,2,3};
      Student[] students = { new Student(18,"張三"), new Students(20, "李四") };
      
    2. 動態初始化

      int[] a = new int[2];
      a[0] = 1;
      a[1] = 2;
      
    3. 預設初始化

      • 動態初始化未完全賦值,陣列未賦值部分預設賦值為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項

  1. 將陣列壓縮成稀疏陣列
  2. 儲存(節省大量空間)
  3. 將稀疏陣列解壓成陣列