5/10
数组的四个基本特点
- 长度确定。数组一旦被创建,它的大小就是不可改变的。
- 元素必须是相同类型。
- 元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组使用
- For-Each循环(一般用于打印结果)
psvm{
int[] arrays = {1,2,3,4,5};
//arrays.for自动生成 没有下标
for (int array : arrays){
sout(array); //遍历输出
}
}
- 数组作方法入参
psvm{
int[] arrays = {1,2,3,4,5};
//调用方法
printArray(arrays);
}
//方法
public static void printArray(int[] arrays){
for(int i = 0;i < arrays.length; i++){
sout(arrays[i]+" ")
}
}
- 数组作返回值
//反转数组
psvm{
int[] arrays = {1,2,3,4,5};
//调用方法
reverse(arrays);
//打印数组
printArrays(reverse);
}
//方法
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for (int i = 0, j=result.lenth-1; i < arrays.length; i++; j--){
result[j] = arrays[i];
}
return result;
}
多维数组
int[][] array = {{1,2},{3,4},{5,6}};
array.length = 3;
array[0].length = 2;
Arrays类
- 数组的工具类java.util.Arrays
- 工具类Arrays,提供可调用的方法。
- Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用。
- 常用功能:
- 给数组赋值:通过fill方法。
- 对数组排序:通过sort方法,按升序。
- 比较数组:通过equals方法比较数组中元素值是否相等。
- 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
冒泡排序*
-
冒泡排序无疑是最出名的排序算法之一,总共有八大排序!
-
冒泡排序
- 比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
- 每一次比较,都会产生出一个最大,或者最小的数字
- 下一轮则可以少一次排序!
- 依次循环,直到结束
public static void sort(int[] array){
//第三方变量
int temp = 0;
//外层循环
for(int i = 0;i <array.length-1;i++){
//内层循环
for(int j = 0;j < array.lenhth-1-i;j++){
if (array[j+i]>array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
优化:设立flag标识位,当不产生比较时,直接退出循环。*
for(int i = 0;i <array.length-1;i++){
//减少没有意义的循环
* boolean flag = false;
//内层循环
for(int j = 0;j < array.lenhth-1-i;j++){
if (array[j+i]>array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
* flag = true;
}
}
*if (flag==false){
break;
}
}