3、数组

3、数组

3.1 数组概述

数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型

  • 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址

  • 数组的长度一旦确定,就不能修改

  • 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快

  • 数组的分类:

     按照维度:一维数组、二维数组、三维数组、…
     按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组 (即对象数组)

3.2 一维数组

声明:type var[] 或 type[] var;

int[] arr, int a[] ; (声明时不能指定数组长度 int a[5]非法)

初始化

  • 动态初始化 :数组声明且为数组元素分配空间赋值的操作分开进行

    image-20220312154535700

  • 静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

    image-20220312154602311


默认初始化值

 对于基本数据类型而言,默认初始化值各有不同
 对于引用数据类型而言,默认初始化值为null( 注意 与0 0 不同!) )

image-20220312154734342

3.3 多维数组

二维数组:定义n个一维数组,且每个一维数组可以是不同长度的

  • 动态初始化

    image-20220312160215131
  • 静态初始化

    image-20220312160251798

3.4 数组中的常见算法

  1. 数组元素的赋值(杨辉三角、回形数等)
  2. 求数值型数组中元素的最大值、最小值、平均数、总和等
  3. 数组的复制、反转、查找(线性查找、二分法查找)
  4. 数组元素的排序算法

排序算法:

衡量排序算法的优劣:

  1. 时间复杂度:分析关键字的比较次数和记录的移动次数
    2.空间复杂度:分析排序算法中需要多少辅助内存
    3.稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的

排序算法分类:

  • 内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排序操作都在内存中完成
  • 外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最常见的是多路归并排序。可以认为外部排序是由多次内部排序组成

十大排序算法:

选择排序

  • 直接选择排序,堆排序

交换排序

  • 冒泡排序,快速排序

插入排序

  • 直接插入排序,折半插入排序,Shell排序

归并排序

桶式排序

基数排序

3.5 Arrays工具类

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法。

image-20220312162445958

3.6 数组中的常见异常

image-20220312162526780
posted @   simp1e1  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示