方法、数组

方法

方法是一组代码的集合
为了实现代码的复用。重复使用,相同的代码,不需要写多次。

定义方法

语法

必须定义在类里面:

修饰符 返回值类型 方法名(参数列表){
		方法体
}
  1. 修饰符
 	可以有多个.
 	修饰符是用来限定方法的适用范围和使用方式。
 	范围:权限修饰符(public、protected、默认的、private)。
 	方式:static 静态的、abstract 抽象的、final最终的、synchronized 同步的、native 本地的(C,C++编写的方法)	
  1. 返回值类型
    1)void:表示方法没有返回值。
    2)基本数据类型:指定方法返回值的类型,要求方法在结束的每一个出口都要提供相应类型的返回值。

返回值是用return来提供的
如果方法没有返回值,可以直接使用return结束方法

  1. 方法名
    方法名是一个标识符!
    方法名应该使用小驼峰命名法。

  2. 参数列表
    向方法传递数据的载体。
    1)没有参数:()
    2)有参数:参数列表要指定参数的类型及名字。多个参数使用逗号分隔。

调用方法

1、 调用
使用方法名+圆括号,参数类型需匹配
2、实参和形参
形参(形式参数):方法声明时,参数列表中的参数
实参(实际参数):方法调用时,传递的实际参数。
将实参的值,赋值给形参。

递归调用

在方法的内部,调用了方法自己。
递归通常都可以转换成循环。
递归更容易理解,在JVM中递归地调用不能是无限的。
循环不如递归更容易理解,但是它是可以无限循环的。
当递归层次过多时,会出现栈溢出错误。
当方法被调用是,方法将绘入栈。栈时一块内存。

重载

概念:
在一个类中,出现了方法名相同,但是参数列表不同的方法,这就是叫方法的重载!
调用:
调用重载方法时,根据实参的数据类型,寻找最为匹配的方法进行调用。
重载的要求:
参数列表不同:1)参数的数量不同、2)类型不同、3)顺序不同
不构成重载:1)参数名不同、2)返回值类型不同

数组

数组的概念和特点

概念:数据是一个可以保存多个相同类型元素的集合。
特点:
1)内存连续。数组中的元素在内存中紧挨着。
有序性,元素前后顺序有序。
2)大小固定。数组一旦创建,大小就不能改变。

数组的定义和初始化

语法:

  	数据类型[] 数组名;(------推荐使用------)
  	数据类型 数据名[]; (兼容C、C++)

初始化

1)动态初始化

  • 数组名= new 数据类型[长度];
    
  • new:为一个对象分配内存空间。
  • 数据类型要与数组定义是的数据类型像相一致
  • 长度:数组中可以保存的元素的数量。
  • 可以通过类型和长度,就可以计算他的内存空间
  • 动态初始化时,会为数组中的每一个元素提供一个类0的初始值
  • 基本类型的变量,保存的时具体的值

引用类型的变量。保存的是对象的引用、是对用的地址

数据类型类0值
byte0
short0
int0
long0
float0.0
doubke0.0
char‘0’
booleanfalse
引用null

2)静态初始化
语法:

  • 数组名=new 数据类型[]{元素1,元素2,...,元素n}	
    
  • 数据类型[] 数组名={元素1,元素2,元素3,...}
    
    -数组的长度由{}的元素的数量决定
    -数组中的每一个元素,都会被初始化为{}中的对应位置的元素

数组中元素的访问

语法:

  • 数组名[下标];
    

下标:元素在数组中的位置
下标的取值 : 0~len-1
超出下标范围会:ArrayIndexOutOfBoundsException

数组的操作

  1. 循环赋值:循环生成下标

  2. 遍历数组

    1)循环生成下标方式
    2)增强for循环方式、foreach
    .
    -for(数据类型 变量名:集合){
    循环体
    }

    执行过程:

    •  1)尝试从集合中取出一个元素
      
    •   2)如果成功取出一个元素,将元素赋值给变量。执行循环体。
      
    •   3)在循环体中,可以用变量访问元素得知
      
    •   4)循环执行完成后,回第一步
      
    •   5)如果无法取出一个元素,说明集合中的元素都已经被去过了。此时循环结束。
      
  3. 求最值

  4. 求和、平均值

  5. 查找元素的位置

  6. 二分查找算法前提:有序数组
    思想:
    > 在一个有序数组中。先于数组的中间元素进行比较:
    > 查找元素==中间元素:找到了
    > 查找元素<中间元素,… ;
    > 查找元素>中间元素,… ;

数组的排序

将一个无序的数组,按照制定的规则调整元素的位置,使之变得有序。
十大排序算法

算法时间复杂度空间复杂度是否稳定注意
冒泡排序n^21稳定
选择排序n^21不稳定
插入排序n^2n稳定
快速排序nlognlogn不稳定
希尔排序nlogn1不稳定
归并排序nlognn稳定
堆排序nlogn1不稳定
计数排序nk稳定数据量不能过大
桶排序nn+k稳定数据必须要在一定的范围内均匀排布
基数排序nn+k稳定

多维数组

  1. 定义
    >变量定义:数据类型 变量名;
    >数组定义:数据类型[ ] 数组名;
    >二维数组:数据类型[ ][ ] 数组名;
    二维数组定义语法:
    数据类型[ ][ ] 数据名;
    数据类型[ ] 数组名[ ];
    数据类型 数组名[ ][ ];

  2. 二维数组可以看作每一个元素是一个一维数组

  3. 初始化
    1)动态初始化
    数据类型[ ][ ] 数组名=new 数据类型[一维长度][二维长度];
    2)静态初始化
    数据名=new 数据类型[][]{};

  4. 访问元素
    数组名[一维下标] :访问一维的元素或者二维数组下的一维数组
    数组名[一维下标][二维下标]:访问二维元素

  5. 操作
    1)遍历

        用嵌套循环遍历二维数组
        循环生成下标,foreach
    

    2)最值、求和、平均值、查找、排序等等。

      排序:给每一个第二维的数组分别排序,压缩成一维数组进行排序。
    

    3)比较,== 引用类型时,比较两个引用是否指向同一对象,同意内存地址;Arrays.equal()比较两个相同引用对象的内容是否一致。

  6. Arrays类

         sort
         toString
         binarySearch
         copyOf
         copyOfRang
         equal
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值