1. 数组
数组的介绍:
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数组就是一组数据。
double[ ] 表示 double类型的数组
提示:可以通过 **数组名.length** 得到数组的大小和长度。
2. 数组的使用
方式1:动态初始化
1)数组的定义:
数据类型 数组名[ ] = new 数据类型[大小];
int a[ ] = new int[ 5] ;//创建了一个数组,名字a,存放5个int
这是定义数组的一种方法。
2)数组的引用
数组名[下标/索引/index] 用 来访问数组的元素 (下标是从 0 开始编号的)
方式2:动态初始化
1)先声明数组
语法: 数据类型 数组名[ ];也可以 数据类型[ ] 数组名;
int a[ ] ; 或者 int[ ] a;
2)创建数组
语法:数组名[ ] = new 数据类型[大小];
a[ ] = new int[ 5] ;//分配内存空间,可以存放数据
方式3:静态初始化
1)初始化数组
语法:数据类型 数组名[ ] = {元素值,元素值.....};
创建字符串:
String strs[ ] = new String[ ] {"a","b" };
3.数组使用注意事项和细节
即: 数组的下标/索引 最小0 最大数组长度 -1.
4.数组赋值机制
数据在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值。
案例分析:
5.数组拷贝
开辟新的数组空间 int[ ] arr2 = new int[ arr1.length];
arr2 = arr1;
arr2 地址指向了 arr1 的数据推
6.数组的反转
逆序赋值法
7.数组的添加/扩容
实现动态的给数组添加元素效果,实现对数组的扩容。
8.排序的介绍
排序是将多个数据,依指定的顺序进行排列的过程。
排序的分类:
内部排序法:
指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法,选择式排序法和插入式排序法)。
外部排序法:
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法,直接合并排序法)。
9.冒泡排序法
冒泡排序的基本思想是,通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值。若发现逆序则交换,使值较大的元素逐渐从前一项后部,就像水底下的气泡一样逐渐向上冒。
代码:
public class Homework07 {
//编写一个main方法
public static void main (String[] args) {
//冒泡排序
int arr[] = {55,44,33,22,11};
int temp = 0;
//排序外循环
for(int i = 0;i < arr.length-1;i++){
//内循环
for(int j = 0;j < arr.length-1;j++){
//如果是从大到小,条件是 arr[j] > arr[j + 1]
//如果是从小到大,条件是 arr[j] < arr[j + 1]
if(arr[j] > arr[j + 1]){
temp = arr[j];
arr[j] = arr[j +1];
arr[j+1] = temp;
}
}
}
//遍历
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
}
}
10.查找
介绍:
在java中,查找有两种:
1)顺序查找
2)二分查找【二分法】
11.多维数组-二维数组
使用方式1:动态初始化
使用方式2:动态初始化
使用方式3:动态初始化 - 列数不确定
使用方式4:静态初始化
示意图:
经典案例:杨辉三角
二维数组的使用细节:
课后题:
小技巧
1.注:将字符串的内容比较是否相等
String name = "222";
if( "222".equals(name) ){ //判断name 是否等于 “222”
}
2.判断有没有成功,可以用索引
int index = -1;//索引
//如果找到了,那index = i;
if(arr[i] >= num){
index = i;
}
//如果没有找到,那index = -1;
if( index == -1) {
}