1.数组
数组(容器)
* 保存一组相同数据类型的数据
* 数据类型 变量名 = 初值;
*
* 声明数组格式:
* 数据类型[] 数据名 = 初值;
* 注意:这里的数据类型 指的是 数组中保存的数据的类型
2.数组的3种定义方法
* 数组声明方式一
* int[] array = new int[数组的元素个数];
int[] array = new int[5];
//new 表示 跟堆内存中开辟的空间
// array[下标]=值
array[0] = 5;
array[3] = 10;
array = null;
//声明数组方式二(又给长度又给元素)
int [] array = new int []{1,3,5,11};
//语法糖(方式三)
int[] array1 = {1,3,5,7,9};
3.数组的内存图
changeArray(array);
// 直接打印数组 [I@6d06d69c hashCode码
4.有趣的冒泡排序
冒泡排序
核心思想:相邻两个数比较 换位
外循环 控制一共比了多少趟
public class Demo05 {
public static void main(String[] args) {
int[] array = { 3, 2, 5, 1 };
/*
* 外循环 控制一共比了多少趟
* 内循环 控制一趟比了多少次
* 内循环-1 防止数组越界
* 内循环-i 循环一次 确定一个数 每次少比一个
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1; j++) {
//判断大小 相邻
if (array[j] > array[j + 1]) {
//交换
int t = array[j];
array[j] = array[j + 1];
array[j + 1] = t;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
5.好玩的选择排序
选择排序
核心思想:选择一个数(选第一个数)和其让他的数比较 交换
public static void sort(int[] array){
for (int i = 0; i < array.length-1; i++) {
for (int j = i+1; j < array.length-i; j++) {
//用第0个数 和剩下的每一个数比较
//量化思维
//i = 0 j 1 2 3
//i = 1 j 2 3
//i = 2 j 3
if(array[i]>array[j]){
//交换
int t = array[j];
array[j] = array[i];
array[i] = t;
}
}
}
}
6.省力的折半查找(必须是有序数列)
public static void main(String[] args) {
int[] array = { 1, 22, 33, 44, 55, 66 };
int key = 66;
int min = 0;
int max = array.length - 1;
int mid = (min + max) / 2;
// 循环---明确知道循环的停止条件
while (array[mid] != key) {
// 判断key和中间角标的值
// 来挪动 最小或最大角标
if (key > array[mid]) {
min = mid + 1;
}
if (key < array[mid]) {
max = mid - 1;
}
// 每次循环都要有折半的操作
mid = (min + max) / 2;
// 数组中没有这个数时候
if (min > max) {
// 没有这个数 使用-1表示
mid = -1;
break;
}
}
System.out.println("该值的坐标的是:" + mid);
}
7.多维数组(二维及二维以上)
二维数组(容器)
* 保存多个相同类型的一位数组
* (几维数组 就几个[])
* 数组类型[][] 数组名 = 初值;
*
* 三维数组
* 保存多个相同类型的二维数组
//声明方式二
//1,11,111 /2,22,222
int[][] array1 = new int[][] {
{1,111,1111},
{2,22,222},
};
二维数组的遍历
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
System.out.print(array1[i][j]+" ");
}
}