函数重载,数组,一些算法
Posted hbxzj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数重载,数组,一些算法相关的知识,希望对你有一定的参考价值。
函数:
函数的作用: 将一个功能代码封装起来,已达到功能代码被复用。
函数 的定义格式:
修饰符 返回值类型 函数名(形参列表){
函数体;
}
函数的特点和注意的细节:
1. 函数就是将一个功能代码封装起来,已达到功能代码可以被复用起来的效果。 2. 如果一个函数没有返回值,那么函数 的返回值类型要使用void表示, 3. 函数定义好之后,需要被调用才会执行。 main函数是由jvm调用,不需要我们手动调用的。 4. 一个 函数可以被重复调用多次。 5. 如果一个函数的返回值类型是void,那么也可以出现return关键字,但是return关键字后面不能跟有数据。
函数的重载: 在一个类中存在两个或者两个以上的同名函数称作为函数的重载。
函数重载的作用: 可以使用一个函数名定义多个函数,以应对不同类型的参数。
函数重载的要求:
1. 函数名要一致。 2. 形参列表不一致。(形参的个数不一致或者是形参对应的类型不一致) 3. 函数重载与返回值类型无关。
数组: 数组就是存储同一种类型数据 的集合 容器。
数组的特点:
1. 数组只能存储同一种数据类型的数据。 2. 数组一旦初始化,长度固定。 3. 在一个数组中元素与元素之间的内存地址是连续 的。
数组的初始化方式:
动态初始化 数据类型[] 变量名 = new 数据类型[长度]; 静态初始化 数据类型[] 变量名= {元素1,元素2,元素3 ....};
数组常见的问题:
第一种: 空指针异常。
原因: 引用类型变量没有指向任何的对象,而使用了对象的功能或者是访问了对象的属性。
第二种: 角标越界异常
原因: 访问了不存在的索引值。
数组常见的操作:
需求2: 定义一个函数接收一个数组对象,然后把数组中最大值放在第一位。 其他元素不能丢失,顺序无所谓。
class Demo6 { public static void main(String[] args) { int[] arr = {13,11,17,4,19}; //int max = getMax(arr); //System.out.println("最大值:"+ max); changeMax(arr); } //需求:把最大值放在第0位 public static void changeMax(int[] arr){ for(int i = 1 ; i<arr.length ; i++){ if(arr[0]<arr[i]){ int temp = arr[i]; arr[i] = arr[0]; arr[0] = temp; } } //遍历数组元素,查看效果 for(int i = 0 ; i< arr.length ; i++){ System.out.print(arr[i]+","); } } //需求1: 定义一个函数接收一个数组对象,然后找出数组对象中的最大值返回。 public static int getMax(int[] arr){ int max = arr[0] ; //定义一个变量记录最大值 for(int i = 1; i < arr.length ; i++){ if(arr[i]>max){ //如果发现有元素比max大,那么max则记录当前的元素。 max = arr[i]; } } return max; } }
需求:数组元素反转(就是把元素对调)
public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub //数组元素反转(就是把元素对调) int[] arr = {120,119,110,528,520,99,23}; //{520,528,110,119,120}; //1.算下对调次数 int count = arr.length / 2; //2.打印对调的索引 for(int i = 0; i < count; i++){ int left = i;//左边索引 int right = arr.length - i - 1;//右边索引 System.out.println("左边的索引:" + left + " 右边的索引:" + right); //把左边的值赋值给临时变量 int tmp = arr[left]; //把右边的值赋值给左边 arr[left] = arr[right]; //把临时变量赋值给右边 arr[right] = tmp; } //3.遍历 for(int i = 0;i < arr.length; i++){ System.out.println(arr[i]); } } }
需求: 定义一个函数接收一个数组与一个要查找的元素,然后返回元素在数组中的索引值。如果不存在
返回-1表示。
二分法(折半查找法): 折半查找法只适用于有序的数组。
以上是关于函数重载,数组,一些算法的主要内容,如果未能解决你的问题,请参考以下文章