Java方法与数组

Java方法与数组

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

  • 修饰符可选的,定义方法的访问类型

  • 返回值类型返回值类型需与return类型一致

  • 方法名小写开头,驼峰原则

  • 参数类型形参可选

  • 方法体:定义方法功能

修饰符 返回值类型 方法名(参数类型 参数名) {

...

方法体

...

return 返回值;

}

// 示例代码
    public static int add(int a, int b){
        return a+b;
    }

方法调用

  • 调用方法:对象名.方法名(实参列表)

    1. 有返回值时,需新建一个对象,将方法的返回值赋给对象(即sum)

      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. 将稀疏数组解压成数组
posted @ 2021-08-06 21:57  Coline1  阅读(53)  评论(0编辑  收藏  举报