一维数组
数组就是一个数据的集合,里面存放着同一种类型的元素,数组下标从0开始,可以通过下标来找到该元素。1.基础部分:
1.静态、动态初始化
静态初始化:就是在定义数组后,一次性将数组元素赋值,系统自动判定其长度。如 : int[] is = new int[]{1,2,3}; 或者 int[] is = {1,2,3};动态初始化:在定义数组时只规定了数组长度。Int[] is = new int[3];这种情况下个元素由系统默认赋其初始值:整型为0,浮点型为0.0,char为空格(u/0000),boolean为false,引用数据类型为null。
2.静态vs动态初始化
静态:初始化时,直接赋值元素,数组长度由系统给定。动态:初始化时,指定数组长度,元素初始值由系统默认给予。
3.获取指定下标上的元素
直接数组名加下标就可以取得指定的元素。4.设置指定下标上的元素
就和普通的赋值语句一样。要用循环5.遍历(for循环、增强for循环)
for循环和增强for循环的不同之处在于:通过增强for循环无法直接操作数组元素,不能修改数组中的元素,而for循环是直接与数组下标打交道,可以修改数组内元素。
6.可变参数
不能同时有两个可变参数,如果非要单独加一个值,加在前面
可变参数的正确表达形式:
}
public static void hhy(int ...is){
}
2.排序:
1.冒泡
N个数字进行n-1轮排序每一轮结束后最后一位为该次排序中的最大值,即每次排序生产一个最大值放于末尾。
外层:0---length-1
内层:0---length-1-i
2.选择
定义一个变量来表示当前一轮中的最小值的下标,如果一轮结束后最小值不是当前第一位元素,则交换当前第一位和该轮最小值特点,不用边比较边交换值,内层循环执行完一次才考虑交不交换值。
外层:0----length-1
内层:i+1-------length
3.插入
特点,排序的过程中部分有序,从头开始,先排前面两位,后面按插队处理,相互比较,每一轮后有序的数增加一位外层:0----length-1
内层:i+1----------0;
3.查找:
1.顺序查找
很简单,就是逐个遍历,比较,利用循环。2.二分法查找
要先排序,查找时需定义 start middle end,循环条件(start <=end)
初始时start=0; end=length-1;
每次比较值下标为middle = (start+end)/2;
4.Arrays工具类(学会使用API)
.sort();给数组排序.fill();给数组中的元素全部赋值
工具类的使用方法:
1. 找到所属包2. 查看一个方法是否是静态的
3. 返回值类型是什么
4. 参数是什么
5. 每个方法的含义要看懂
5.学生管理系统
1.分析需求1.1增
判断输入姓名是否合法
判断当前输入姓名是否已被使用
考虑扩容的问题
返回操作结果true or false
1.2删
判断输入姓名是否合法
查询当前是否存在此人
删除此人,并将其之后的元素各向前移动一位
返回操作结果true or false
1.3改
判断输入姓名是否合法,是否存在于数组中
判断修改后名字是否合法,是否与数组中元素重名
查询该姓名,得到下标后替换
返回操作结果true or false
循环遍历,比较,有则返回其下标,无则返回-1
1.5遍历
循环遍历
2.列出方法3.实现方法里的具体功能