JAVA方法声明及数组排序

一.方法的声明与调用
1.什么是方法
Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,声明格式:
[修饰符1 修饰符2...] 返回值类型 方法名(形式参数列表){
程序代码;
[return 返回值];
}
方法的参数列表既可以是有参数的,也可以是没有参数的
方法的好处:提高代码的重用性
说明:本节涉及到的方法是由static修饰的静态方法。
2.有参方法
带参方法的定义和无参方法一致,只是()中包含有一个或多个变量的定义,称为参数列表
参数有两种:
形式参数(形参):在方法定义时用于接收外界输入的数据。
实际参数(实参):调用方法时实际传给方法的数据。
3.方法参数的传递
a.如果传递的参数是基本数据类型,那么方法接收到的实际上是这个数据的值拷贝(值副本)。
b.如果传递的参数是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。(面向对象的时候再说)
4.方法返回值
两种情况
如果方法没有返回值,返回值类型为void
如果方法有返回值, 方法中必须使用关键字return返回该值,返回值类型为该返回值的类型
return 表达式; 作用: 跳出方法、返回结果
如果在方法中直接写return,而没有返回值,则方法结束。
5.方法的调用
Java语言中使用下述形式调用方法:
a.直接调用:方法名(实参列表);
b.类名调用:类名.方法名(实参列表);
c.对象调用:对象.方法名(实参列表);(面向对象会使用)
实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。
6.递归算法(递推和回归)
递归调用指的是方法执行过程中出现该方法本身的调用。
自己调用自己
递归算法的两个条件:
a.递归出口(结束条件)
b.逐层递推向出口逼近
二.一维数组的声明、初始化与遍历
1.数组
数组是一个变量,存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间
2.数组的基本要素
a.标识符:数组的名称,用于区分不同的数组;
b.数组长度属性:length;
c.元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问;
数组长度固定不变,避免数组越界
3.数组的声明、分配空间、赋值
a.声明数组
int[ ] score1;
int score2[ ];
String[ ] name;
数据类型 数组名[ ] ;
数据类型[ ] 数组名 ; 声明数组时不规定数组长度
b.分配空间
score = new int[30];
avgAge = new int[6];
name = new String[30];
声明数组并分配空间
数据类型[ ] 数组名 = new 数据类型[大小] ;
c.赋值
score[0] = 89;
score[1] = 79;
score[2] = 76;
……
4.一维数组的静态初始化
在声明数组时还可以直接指定数组的具体内容。
数据类型[] 数组名={初值0,初值1,…,初值n};
eg:
int[] score={65,59,73,71,98,66};
5.数组的遍历
a.方法一
通过for循环获取数组元素的下标,然后遍历对应元素
例如:
for(int i = 0;i < array.length;i++){
// 逐个遍历元素array[i]
}
b.方法二
foreach输出
for(数据类型 变量名称:数组名称){

}
例如:
for(int x:array){
// x为当前正在遍历的数组元素
}
补充:方法的可变参数
在JDK1.5(JavaSE 5.0)之后,引入了一个新概念:
可变参数,即:方法中可接收的参数不再是固定的,而是可以根据需要传递数量不等的参数个数。
可变参数的定义格式:
返回值类型 方法名称(类型… 参数名称){
}
注意:向方法传递可变参数后,参数在方法内部是 以数组的形式保存下来的。
三.数组拷贝
System类中有一个静态方法:
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
参数解释:
src: 源数组
srcPos: 源数组的起始位置
dest: 目标数组
destPos:目标数组的起始位置
length:拷贝的数组元素个数

四.排序算法
1.冒泡排序
共有n个数据,则需要进行n-1趟排序(可优化),每一趟排序都会通过“两两交换”的方式对数据进行比较,每一趟排序后都会将本趟排序的最大值“冒”到后面。

  1. 插入排序
    对一个有n个元素的数据序列,排序需要进行n-1趟插入操作(可优化)。
    第一趟插入将第2个元素插入前面的有序子序列(此时前面只有一个元素)。
    第二趟插入将第3个元素插入前面的有序子序列,前面两个元素是有序的。
    第n-1趟插入将第n个元素插入前面的有序子序列,前面n-1个元素是有序的。
    1. 快速排序
      从待排序的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的数据元素放到左边,所有比它大的数据元素放到它的右边。
      接下来,对左右两个子序列按照上述方法进行递归排序,直到排序完成。

五.二维数组
二维数组的声明与实例化:
数据类型[][] 数组名称=new 数据类型[行的个数][列的个数];
注意:二维数组的length属性就是它所包含的“行的个数”。
二维数组访问具体元素的语法: 数组名称[行的索引][列的索引]
二维数组的静态初始化
数据类型[][] 数组名称={
{元素1,元素2,....},
{元素1,元素2,....},
...
};

转载于:https://blog.51cto.com/13507330/2048544

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值