数组
所谓数组,是有序的元素序列。 [1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 [1] 这些无序排列的同类数据元素的集合称为数组。(百度百科的说法)
数组的简单定义:数组就是含有同一种数据类型的元素的集合,每一个元素都有自己的独有的下标,下标默认从0开始;数组可以在实际应用中可以用来存储多个同一种数据类型的多个变量。数组本身也是一个特殊变量(引用类型的变量)。个普通的变量不同的一点就是普通变量只能存储一共一共值,而数组可以存放多个值,这些值的数组类型必须完全由一样(数组在数据结构中是一共线性结构)。
数组的基本格式
数据类型 [] 数组名称 = new 数据类型[数组的长度];比如定义10个元素的整型数组,int[] nums=new int[10];,double [] ps= new double[10];
数组的申明方式
第一种: 数据类型[] arrs = new 数据类型[长度];
第二种: 数据类型[] arrs = {元素1,元素2,元素2......}; 申明数组并且初始化数组的元素
数组的相关属性
1、length;表示数组的长度,就是数组的元素个数。
数组的访问问
数组的访问是通过下标去访问的【数组名[下表名称]】下标从零开始
int[] arrs={1,3,5,8};
那么 访问第一个元素就是 arrs[0];
最后一个素就是 arrs[arrs.length-1);
数组的遍历
数组的遍历可以使用for循环进行去遍历,有for循环的循环次数是非透明的,
所以可以很方便的访问数组
数组的初始化
数组的初始化其实在定义数组的时候可以显示的初始值,如果不初始化数组的值,只给出数组的长度,那么数组的元素的值依赖于数的类型,如果数组的类型是int 那么每一个元素都初始化为int类型的变量0,如果是double那么数组里面的每一个元素的值就是0.0.
另外一种初始化就是通过for循环去变量数组的所有元素,从而进行初始化操作
数组的排序
主要选择冒泡排序
快速排序
二叉排序
选择排序
希尔排序等
/**
* 冒泡排序
*/
int []arrs={23,67,89,-1,12,888};
//第一层for循环控制比较趟数
for (int i = 0; i <arrs.length-1 ; i++) {
//第二层for循环比较排序的次数
for (int j = 0; j <arrs.length-i-1 ; j++) {
if(arrs[j] < arrs[j+1]){
/**
* 实现交换两个元素,必须涉及到第三个元素
*/
int tmp=arrs[j];
arrs[j] = arrs[j+1];
arrs[j+1] = tmp;
}
}
}
for (int i = 0; i <arrs.length ; i++) {
System.out.print(arrs[i]+"\t");
}
数组的复制
数组的扩容
数组的扩容(自己写 算法实现)
数组的两大API(重点)
方法
方法的概念: 方法在其它语言中叫做过程,也叫做函数,方法就是完成某一个业务逻辑的代码块,通过使用方法可以使得代码得到很好的复用。
方法的定义
方法由5个要素组成:
- 方法的修饰符
- 方法的返回值类型
- 方法的名称
- 方法的参数列表
- 方法体
方法的修饰符
public static修饰符 表示方法为公有的静态方法(也叫类方法)
方法的返回值类型
- 基本数据类型
byte short int long float double char boolean(八大基本数据类型) - 引用数据类型
数组类型,类类型,接口类型等都是引用类型 - void类型(无返回值类型)
无返回值类型,是一个特殊返回值类型
方法名称
方法名称遵循变量的命名
参数表
参数表里面的每一个参数都需要指定对应的数据类型,多个参数之间使用","隔开
方法体
方法体是实现方法的具体逻辑(业务算法),可以将方法的功能全部的实现分别写在方法体里面一一实现。
注意: 如果方法的返回值类型是void类型,那么可以在方法体里面使用return关键字不接任何返回值,这样可以结束当前方法的调用。如果方法的返回值类型是非void类型,那么方法的最后面必须使用return
关键字加上具体返回值返回。
作业:
- 设计一个方法求数组的最大值,最小值
- 设计一个方法完成对数组的排序
- 设计一个方法完成对两个数组的合并
- 设计一个方法找出1到n里面的所有的基数
- 设计一个方法,该方法产生5个不一样的随机字符串(A-Z)
比如:ASDFJ WRTCB DDCB(不合法,一定要记得去重)