Java方法与数组
Java方法与数组
方法:(即c++的函数)
-
修饰符:可选的,定义方法的访问类型、
-
返回值类型:返回值类型需与return类型一致
-
方法名:小写开头,驼峰原则
-
参数类型:形参,可选
-
方法体:定义方法功能
修饰符 返回值类型 方法名(参数类型 参数名) {
...
方法体
...
return 返回值;
}
// 示例代码
public static int add(int a, int b){
return a+b;
}
方法调用
-
调用方法:对象名.方法名(实参列表)
-
有返回值时,需新建一个对象,将方法的返回值赋给对象(即sum)
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项
- 将数组压缩成稀疏数组
- 存储(节省大量空间)
- 将稀疏数组解压成数组