数组
数组的定义
1.动态初始化
int[] a = new int[5]:
不需要指定元素,指定的是元素的个数
--
2.静态初始化
int[] b = new int {1,2,3,4,5};
int[] c = = {1,2,3,4,5};
通过数组的下标来操作数组中的元素
数组的下表从0开始,最大下标=数组的长度-1
=========================================================================
Arrays
Arrays.toString(数组名)打印非char类型数组
查看数组具体元素时,需要使用
Arrays.sort(数组名)用于直接给数组中的元素排序
影响的是传入的这个数组,直接更改这个数组中元素的顺序
Arrays.copyof(原数组名,新数组长度)用于数组的复制,有两个参数
该方法不会修改原数组,创建的是指定长度的新数组
缩容/扩容:先创建长度固定的新数组
然后按照个数从原数组中复制数据,超出的部分会被清除,不足的位置还是对应类型的默认值
Arrays.copyOfRange(数组名,初始下标,结束下标)从中间复制
=========================================================================
方法的重载
在一个类中,存在方法名相同,但参数列表不同的方法
如果参数个数相同,看对应位置参数的类型,与参数名无关
当参数个数不同时,一定构成重载
=========================================================================
冒泡排序思路
1.如果有n个数,最多比较n-1轮
2.每一轮从头开始,把所有数据狗过一遍
3.之前轮中比较出来的最大值不参与下一轮比较
优化思路:
1.内存循环的循环次数用数组长度减去外层循环次数,从而排除之前比较出的最大值
2.数据不够乱时,使用一个bool值来作为信号量,初始赋值false
在内存循环的数据交换时,将信号量改变,并在循环结束时检测信号量
若信号量发生变化,则说明本轮数据发生过变化,仍然需要比较下一轮
若信号量不变,则说明已经排序完成,使用break跳出循环或return来返回结果结束循环