Java方法与数组
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项
- 将数组压缩成稀疏数组
- 存储(节省大量空间)
- 将稀疏数组解压成数组
原文地址:https://www.cnblogs.com/Coline1/p/15110474.html
- Vue slot简单理解
- css实现图片横向排列滚动
- windows下nvm安装node之后npm命令找不到问题解决办法
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- Chrome设置断点的各种姿势
- React-native踩坑小记
- 带修改莫队算法
- P2590 [ZJOI2008]树的统计
- #103. 子串查找
- P2051 [AHOI2009]中国象棋
- P2216 [HAOI2007]理想的正方形(二维RMQ)
- P3376 【模板】网络最大流(70)
- android客服端+eps8266+单片机+路由器之远程控制系统
- P2740 [USACO4.2]草地排水Drainage Ditches
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 关于自定义单选框InfoPreference的笔记
- Python爬虫之gerapy爬虫管理
- 内存地址中藏着的学问
- Python爬虫之crawlspider类的使用
- 数据结构 - 堆(Heap)
- 信息收集之主机发现:masscan
- 信息收集之社工字典
- CloudBase CMS 2.0 焕新升级,从「心」出发!
- 使用MySQL Keyring 的 SECRET类型密钥执行非对称加密
- node egg 实现跨域
- 使用Markdown画流程图
- HBase NotServingRegionException
- Flink SQL 写入 Hive表的性能问题
- 文件系统索引extent 和 bitmap区别
- MySQL的Bugs