函数
定义:函数就是定义在类中具有特定功能的独立小程序,函数也称为方法。
可以提高代码的复用性。
格式:修饰符 返回值类型 函数名(参数类型 行为参数1,参数类型 行为参数2)
{
执行语句;
return返回值;
}
return返回值,当函数运算后没有具体返回值时,这时返回值类型用一个特殊的关键字来标识,关键字 void。
例如:public static(修饰符) int(返回值类型) getResult(函数名) (int x)
{
return x*3+5;
}
调用函数时写法:函数名(x的值); int x= getResult(4);
例:判断两个数是否相同
1.public static boolean bijiao(int a,int b)
{
if(a==b)
return true;
else
return false;
}
2.定义未知的两个数取其中较大的数当需要调用其他程序得出的两个数中其中较大的 数用的时候 可以用这个函数
/* public static int bijiao(int x,int y)
{
//return (x>y)?x:y;三元用算符
if(x>y)
return x;
return y;
}
函数的重载:
当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示该功能,方便阅读。而通过参数列表的不同来区分多个同名函数。
定义:同一个类中可以存在一个以上的同名函数,只要他们的参数类型或参数个数不同即可。
特点:与返回值类型无关,只看参数类表。
数组
概念:同一种类型数据的集合,其实数组就是一个容器。
好处:1.可以自动给数组中的元素以0开始编号,方便操作这些元素。
2.都有默认初始值
3.不在被调用或使用的时候,一段时间后会自动删除。
格式: 元素类型[ ] 数组名=new 元素类型[ 元素个数或数组长度 ];
元素类型[ ] 数组名=new 元素类型[ ] { 数组中元素的内容} ;
元素类型[ ] 数组名={数组中元素的内容} ;
获取数组长度:数组名.length 例arr.length
应用:
1.取数组中的每一个元素
public static void printArray(int[] arr) { System.out.print("["); for (int x = 0; x < arr.length; x++) { if (x != arr.length - 1) System.out.print(arr[x] + ", "); else System.out.println(arr[x] + "]"); } }
2.获取数组中最值
public static int getMax(int[] arr) { int max = arr[0]; for (int x = 1; x < arr.length; x++) { if (arr[x] >max) max = arr[x]; } return max; }
3.选择排序
public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x + 1; y < arr.length; y++) { if (arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } }
4.冒泡排序
public static void bubbleSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = 0; y < arr.length - x - 1; y++) // 让每一次比较的随之减少 -1 防止角标越界 { if (arr[y] > arr[y + 1]) { swap(arr, y, y + 1); // 把未知调换功能插入到数组中 } } } }
5.把未知的调换定义成一个函数
public static void swap(int[] arr, int a, int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; }
6.自动排序快速排序:
Arrays.sort(arr);
7.数组的查找操作
public static int getIndex(int[] arr, int key)// key 需要查找的数 { for (int x = 0; x < arr.length; x++) // 若果需要查找的值 在数组中有一个以上 那么定义功能,获取的是key 第一次在数组中出现的位置,如果查找的数值不存在则返回-1 { if (arr[x] == key) return x; } return -1; // 当数组中没有需要查找的值key时,返回-1,不存在的角标 }
8.折半查找
折半查找 1
public static int harfSearch(int[] arr, int key) { int min, max, mid; min = 0; max = arr.length - 1; mid = (min + max) / 2; while (arr[mid] != key) { if (key > arr[mid]) min = mid + 1; else if (key < arr[mid]) max = mid - 1; if (min > max) // 当数组中没有要查找的数值时 角标就会超出界限 此时返回-1 return -1; mid = (min + max) / 2; } return mid; // 当mid 等于key 的时候直接返回mid 就不运行 while中的语句了 }
折半查找 2
public static int halfSearch_2(int[] arr, int key) { int min = 0, max = arr.length - 1, mid; while (min <= max) { mid = (min + max) >> 1; // 等同于除以2 if (key > arr[mid]) min = mid + 1; else if (key < arr[mid]) max = mid - 1; else return mid; } return -1; //return min 就可以把一个数插到数组中并按顺序排列min是次数插入的位置 }
二维数组
int[][]arr=new int[3][4]
定义名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组数组中有四个元素。
应用二维数组求和
int[][] arr={{1,2,4,5},{6,4,3,8},{7,1,2,6}}; int sum=0; for(int x=0;x<arr.length;x++) { for(int y=0;y<arr.length;y++) { sum=sum+arr[x][y]; } } System.out.println("sum="+sum);