Lazy loaded image
编程
📙Day05-数组的使用
字数 4422阅读时长 12 分钟
2019-1-17
2025-8-13
type
status
date
slug
summary
tags
category
icon
password

前言

数组,是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,可以通过编号的形式对这些数据进行统一管理。 数组的常见概念:数组名、角标下标或索引,元素、数组的长度

数组的特点

数组的特点: 1. 存储的元素类型都是兼容的 2. 存储的元素是有序排列的的,可以通过序号(下标,索引)来操作元素 3. 数组的长度一旦确定,就不能修改 4. 创建数组对象会在内存中开辟一整块连续的空间,区别与链表是不连续的 5. 数组属于引用类型变量,而数组中的元素既可以是基本数据类型,也可以是引用数据类型 数组就是按照一定顺序,存储兼容类型元素的固定长度的容器

数组的分类

  1. 照维数:一维数组、二维数组...
  1. 照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

数组的声明

Java里的数组,要么指定长度,要么指定内容。不能既指定长度又指定内容,也不能不指定长度也不指定内容

数组的分类

  1. 按照维度,分为一维数组、二维数组
  1. 按照数据元素类型:基本数据类型元素的数组、引用数据类型元素的数组

数组的默认值

数组如果只指定长度,不指定内容,数组里的元素是有值的,使用的是默认值数组元素的默认值和数组的类型有关
数组类型
默认值
byte/short/int/long
0
float / double
0.0
boolean
false
char
空字符 0 \u0000
引用数据类型
null空对象

一维数组的内存解析

notion image

数组的遍历

复制一个数组

反转一个数组

生成数组(元素为指定区间的随机整数)

统计最高分及下标

判断元素是否存在

判断元素是否存在,并输出全部下标

数组常见异常

空指针:NullPointerException 下表越界:ArrayIndexOutOfBoundsException
一旦程序出现异常,未处理时,就终止执行。

排序

十大排序算法 选择排序:直接排序、堆排序 交换排序:冒泡排序、快速排序 插入排序:直接插入排序、折半插入排序,shell排序 归并排序: 桶式排序: 基式排序: 知道有10种排序,红色的两个需要会手写,橙色的了解

算法五大特征

输入、输出、有穷性、确定性、可行性;

常见排序的时间复杂度

快排的时间复杂度\堆排序\归并排序:O(nlog2n) 冒泡排序时间复杂度 O(n^2)
notion image

冒泡排序优化前

冒泡排序优化后

二分查找

二分查找 也叫折半查找,前提是要查找的数据必须要经过排序

生成扑克牌

统计数组内英文字母的出现次数

判断某数组中内容对称与否

判断两数组内容是否相等

生成验证码

Arrays工具类的使用

  1. 定义在java.util包下
  1. Arrays:提供了很多操作数组的方法。
上一篇
Day04-流程控制语句(嵌套、递归、习题)
下一篇
Day06-二维数组和方法