文章目录
4 第四章数组
4.1 概念
数组指的就是相同数据类型的元素的集合。
数组本身是特殊的引用数据类型。
数组本身是引用数据类型,是一个对象,但它可以存储基本数据类型,也可以存储引用数据类型
4.2 数组的创建
4.2.1 声明方式
//在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆array的数据类型。
//数据类型[] 数组名 = new 数据类型[];
int[] array = new int[]
//数据类型 数组名[] = new 数据类型[];
int array[] = new int[]
//声明的同时初始化
int[] ints = new int[5];
nt[] ints1 = new int[]{
1,2,3,4,5};
int[] ints2 = {
6,7,8,9,10};
4.2.2 数组对象的默认值
int[] ints = new int[5]; //默认值为 0
float[] f = new float[6];//默认值为 0.0
String[] f1 = new String[5];//默认值为 null,引用数据类型的默认值都是null。
System.out.println(Arrays.toString(ints));
System.out.println(Arrays.toString(f));
System.out.println(Arrays.toString(f1));
输出
[0, 0, 0, 0, 0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[null, null, null, null, null]
4.2.3 动态创建数组
//没有为元素赋值(可以结合for循环进行赋值)
int[] ints = new int[5];
4.2.4 静态创建数组
//创建的时候,就为每个元素赋初值
int[] ints1 = new int[]{
1,2,3,4,5};
4.2.5 数组的长度
数组的长度可以直接通过数组的length属性获取
int[] ints1 = new int[]{
1,2,3,4,5};
System.out.println(ints1.length);
4.3 数组的访问
数组通过索引下标访问,例如array[0]。
int[] ints = new int[]{
1,2,3,4,5};
for(int i=0;i<ints.length;i++){
System.out.println(ints[i]); //索引从零开始,最大索引为数组长度减一。
}
4.4 数组的迭代
4.4.1 fori普通循环
int[] ints = {
1,2,3,4,5,6};
for(int i=0;i<ints.length;i++){
ints[i] ++;
System.out.println(ints[i]); //索引从零开始,最大索引为数组长度减一。
}
4.4.2 foreach增强循环
int[] ints = {
1,2,3,4,5,6};
//for(取出数据的类型 变量 :数组){}
for(int i : ints){
//变量 i 中存储着从数组中取出来的数据,直到数组中的数据被全部取出来,循环结束
i ++;
System.out.println(i);
}
4.5 排序
https://blog.csdn.net/wq_1995/article/details/81937926
分类:
- 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。
- 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。
比较:
说明:
- 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
- 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
- 内排序:所有排序操作都在内存中完成;
- 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;