JavaSE第四章 数组Array

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的后面;
  • 内排序:所有排序操作都在内存中完成;
  • 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;

4.5.1 比较类排序

交换排序

冒泡排序(稳定)
快速排序

插入排序

简单插入排序(稳定)
希尔排序

选择排序

简单选择排序
堆排序

归并排序(稳定)

二路归并排序
多路归并排序

4.5.2 非比较类排序

计数排序
桶排序
基数排序

猜你喜欢

转载自blog.csdn.net/qq_37079157/article/details/109548526