Java课程——005
笔记:
1.三种循环结构的更佳适用情况:
1)while:"当..."循环
2)do...while:"直到..."循环
要素1与要素3相同时首选do...while
3)for:固定次数循环,应用率最高
2.嵌套循环:
1)循环中套循环,一般多行多列时使用,
外层控制行,内层控制列
2)执行过程:外层循环走一次,内层循环走所有次
3)建议:循环层次越少越好,能一层就不用两层,能两层就不用三层
若业务必须通过三层以上的循环才能解决,说明设计有问题
4)break只能跳出一层循环
3.程序=算法+数据结构
1)算法:解决问题的流程/步骤(顺序、分支、循环)
2)数据结构:将数据按照某种特定的结构来保存
数怎么存
设计良好的/合理的数据结构会导致好的算法
4.数组:
1)相同数据类型元素的集合
2)数组是一种数据类型(引用类型)
3)数组的定义:
int[] arr = new int[10];
4)数组的初始化:
int[] arr = new int[3]; //0,0,0
int[] arr = {1,4,7}; //1,4,7
int[] arr = new int[]{1,4,7}; //1,4,7
int[] arr;
arr = {1,4,7}; //编译错误
arr = new int[]{1,4,7}; //正确
5)数组的访问:
5.1)通过(数组名.length)来获取数组的长度
int[] arr = new int[3];
System.out.println(arr.length); //3
5.2)通过下标/索引来访问数组中的元素
下标从0开始,最大到(数组的长度-1)
int[] arr = new int[3];
arr[0] = 100; //给arr中第1个元素赋值为100
arr[1] = 200;
arr[2] = 300;
arr[3] = 400; //数组下标越界异常
System.out.println(arr[arr.length-1]); //输出arr中最后一个元素的值
6)数组的遍历:
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = 100;
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}
7)数组的复制:
7.1)System.arraycopy(a,1,a1,0,4);
7.2)int[] a1 = Arrays.copyOf(a,6);
a = Arrays.copyOf(a,a.length+1); //扩容
8)数组的排序:
8.1)Arrays.sort(arr); //升序排列
8.2)冒泡排序算法:
8.2.1)4个数冒3轮
8.2.2)每一轮都是从第1个元素开始冒
每一次都是和它的下一个元素比
8.2.3)冒出来的就不带它玩了
冒泡排序
int[] arr = {67,23,45,1}; //升序 for(int i=0;i<arr.length-1;i++){ //控制轮数 for(int j=0;j<arr.length-1-i;j++){ //控制次数 if(arr[j]>arr[j+1]){ int t = arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } } }
浙公网安备 33010602011771号