文章目录
1、 方法的定义
为什么要有方法?
方法就是一段特定功能的代码块。 方法提高程序的复用性和可读性
访问权限修饰符 [其他的修饰符 如static] 返回值类型 方法名 (参数类型1 形参1, 参数类型2 形参2, …){
//方法体
return 返回值;
}
2、 方法的形参与实参
调用方法时传入的参数是实参
在方法定义时的参数称为形参
3、 方法的返回值
- 若当前方法没有返回值而理性,即返回值类型是void, 那么当前方法中可以不写return
- return 即表示结束一个方法, 也可以将返回值返回给调用当前方法的调用者
- return 返回值时一次只能返回一个值,不可以i返回多个值
- 一个方法中可以右多个return, 但被执行的只能有一个所以需要判断。
4、 方法的重载
在类中可以创建多个方法,它们是具有相同的名字,但具有不同的参数和不同的定义
方法的重载: 在同一个类中,方法名相同,参数列表不同,返回值不能作为重载的条件
5、 java 数组的定义
数组是引用类型
四种方式:
6、 数组的赋值方式
7、 数组的遍历
求数组的长度: x.length
通过下标来访问数组中的元素。
下标: 从0开始,在数组长度-1
如:int[] scores = {89, 90};
访问最后一个元素值: int lastElement = scores[scores.length -1];
普通for循环
for(int i = 0; i < x.length; i ++){ }
foreach
java 1.5 之后新增foreach 循环(iteratable)
8、 增强for循环与可变参数
9、数组要注意的问题
NullPointerException (null.length)
ArrayIndexOutOfBoundsException
10、数组示例
11、 最大最小值算法
12、 冒泡排序算法
(稳定)
for(int i = 0; i < nums.length -1; i++){ // 比较轮数等于数列的长度 - 1,100个数字比较99次
for(int j = 0; j < nums.length -1-i; j++){ // 后i个元素已经是大的了
if(nums[j] > nums[j + 1]){
nums[j] = nums[j] + nums[j + 1];
nums[ j + 1] = nums[j] - nums[ j + 1];
nums[j] = nums[j] - nums[j + 1];
}
}
}
13、 选择排序算法
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好数列的最后,直到全部待排序的数据元素排完。(不稳定)
/*
34 4 56 17 90 65
4 34 56 17 90 65
4 17 56 34 90 65
4 17 34 56 90 65
4 17 34 56 65 90
*/
int minIndex = 0;
for(int i = 0; i < nums.length - 1; i ++){
minIndex = i;
for(int j = i+1; j <nums.length; j ++){
if(nums[minIndex]>nums[j]){
minIndex = j;
}
}
if(minIndex !=i){
nums[minIndex] = nums[minIndex] + nums[i];
nums[i] = nums[minIndex] - nums[i];
nums[minIndex] = nums[minIndex] - nums[i];
}
}
14、 直接插入排序算法
从后向前找到合适位置后插入
基本思想: 每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的子序列的合适位置(从后向前找到合适位置后), 直到全部插入排序完为止。
for(int i = 1; i < nums.length; i ++){
int temp = nums[i];
int j = 0;
for(j = i-1; j >=0; j--){
if(nums[j]>temp){
nums[j+1] = nums[j];
}else{
break;
}
}
if(nums[ j + 1] != temp){
nums[j+1] = temp;
}
}
15、 二分查找算法
public int binarySearch(int[] data, int k){
int start = 0;
int end = data.length -1;
while(end >= start){
int mid = (start + end)>>>2;
if(data[mid] > k){
end = mid -1;
}else if(data[mid] < k){
start = mid + 1;
}else{
return mid;
}
}
return -1;
}
16、 Arrays 类
Arrays 工具类: 用来操作数组(比如排序和搜索)的各种方法
常用方法:
- 使用二分法查找 Arrays.bibarySearch(int[] array, int value);
- 数组内容专程字符串的形式输出 Arrays.toString(int[] array);
- 数组排序 Arrays.sort(int[] array);
- 复制指定的数组 Arrays.copyOf(int[] array, int length); Arrays.copyOf(int[] array, int from, int to); System.arraycopy( Object src, int srcPos, Object dest, int destPos, int length)
- 判断两个数组是否相等 Arrays.equals();
- 使用指定元素填充数组 Arrays.fill();
- 将一个数组转变为一个List (asList, )这个list 是定长的,企图添加或者删除数据都会出错。
数组内容专程字符串的形式输出
606

被折叠的 条评论
为什么被折叠?



