写点什么

CGBTN2108-DAY05 总结复习

  • 2022 年 4 月 29 日
  • 本文字数:1513 字

    阅读完需:约 5 分钟


[](()DAY05 复习


==============================================================================


[](()数组


========================================================================


[](()1. 数组的创建方式



[](()1.1 静态创建

int[] a = {1,2,3,4,5};


int[] a = new int[]{1,2,3,4,5};

[](()1.2 动态创建

int[] a = new int[5];


[](()2. 数组创建的过程




  1. 在内存中开辟一块连续的内存空间,用来存放多个相同类型的数据

  2. 给数组完成初始化的过程,给每个元素赋予数组对应类型的默认值,比如 int 的默认值是 0

  3. 数组完成初始化后会分配一个唯一的地址值

  4. 把唯一的地址值交给数组的引用类型变量【数组名】来保存

  5. 如果想要操作数组中的元素,可以根据变量保存的地址找到数组,然后根据下标来操作数组的具体元素


数组名保存的是数组的地址值,不是数组中每一个具体的元素,数组名是一个引用类型的变量


[](()3. 数组的特性




  1. 我们是通过数组的下标来操作数组中的元素的,数组下标从 0 开始,最大下标是数组的长度-1


数组的下标是我们能够进行操作数组的唯一的手段


不能访问不属于这个数组的下标,否则会数组下标越界异常


  1. 数组的长度我们可以通过“数组名.length”来获取


数组一旦创建,长度不可改变


如果想要增加或者是删除数组中的元素,需要创建新长度的数组,无法改变原数组的长度


[](()4.数组的工具类 Arrays




  1. toString(数组名):用来查看当前数组的所有具体元素


除了 char 类型的数组底层做了处理以外,其他任何类型的数组,想要查看数组的具体元素,都必须使用此方法


如果不使用这个方法,直接打印数组名,打印的是数组的地址值


  1. copyOf(要复制的原数组,新数组的长度):用来进行数组的普通复制/扩容/缩容


如果新数组的长度大于原数组的长度–数组的扩容,不够的位置还是默认值


如果新数组的长度小于原数组的长度–数组的缩容,类似于原数组的截取


如果新数组的长度等于原数组的长度–数组的普通复制


注意:不管是以上哪种操作,都不是操作原数组,而是创建了一个新的数组


  1. sort(数组名):利用优化后的快速排序算法对数组进行排序,这个排序算法是直接对原数组做修改的


[](()5. 数组的遍历




  1. 如果只是想查看数组中有哪些元素,直接使用 System.out.println(Arrays.toString(方法名));就可以

  2. 如果想要拿到数组中的一个个的具体元素,或者是对数组中的元素做进一步的操作,就需要对数组进行遍历

  3. 遍历:把数组中的所有元素,从头到尾逐个“过一遍”

  4. 通过循环遍历数组,所以循环中的循环变量代表的是数组的下标


public class ReviewDemo {


public static void main(String[] args) {


int[] a = new int[10];


for(int i = 0;i<a.length;i++) {


//System.out.println(i);//打印的是数组的下标 0-9


a[i] = i+11;//a[i]代表的 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 是数组中每一个具体的元素


}


System.out.println(Arrays.toString(a));


//[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]


}


}


[](()6. 冒泡排序



[](()[冒泡排序详细笔记](()

  1. 冒泡排序只是众多排序算法的一种,主要是为了让大家去拓展思维,接近底层

  2. 后续大家也可以对其他排序算法进行进一步的拓展:二分查找、快速排序、全排序、归并排序。。。

  3. 排序思路:


1)我们需要比较多轮,如果有 n 个数,最多比较 n-1 轮


2)在每一轮中,需要进行多次的相邻比较,如果位置不对,就互换


注意:前面轮中确定的最大值,不需要参与本轮的比较


3)我们使用的是嵌套 for 循环来完成的:


外层循环循环变量代表的是轮数【数组的长度-1】


内层循环循环变量代表的是数组的下标【轮数越后,次数越少,所以 j 随着 i 的增大而减小】


4)优化思路:

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
CGBTN2108-DAY05总结复习_Java_爱好编程进阶_InfoQ写作社区