零基础入门 自学 JAVA SE 基础篇(四)数组在内存中的存储方式 数组的几个要素 数组相关的语法 数组的遍历 数组的相关算法


目标

  1. 数组在内存中的存储方式
  2. 数组的几个要素
  3. 数组相关的语法
  4. 数组的遍历
  5. 数组的相关算法

什么是数组

数组, 一组数据, 一组相同类型的数据. 在内存中, 数组是一串连续的物理空间.

在这里插入图片描述
实际上, 数组也是一个变量, 只不过这个变量中存储的是数组首元素的内存地址 由于数组中的元素类型相同 ( 每个格子的大小相同 ), 物理上又是连续的, 所以: 要对数组中的3号元素进行读写, 这样寻址即可:

3号元素的地址 = 首地址 + 3 * 元素类型大小

数组的几个要素:

  • 数组名称 ­­­­------表示首地址
  • 数组类型/元素类型
  • 长度/元素个数
  • 元素的值 ( 元素称为Element或Item )
    注意:

长度一旦确定, 不可改变, length是只读的, 数组的长度是: array.length 元素的下标从0开始,
最后一个元素的下标是length­1
数组中的元素通过下标来访问, 但是下标不能超出0­(length­1)的范围, 否则产生越界异常(ArrayIndexOutOfBoundsException).

语法

  1. 声明数组:
 int[] myArray; // 告诉系统: 我要存储一组int型的数据
  1. 分配空间:
 myArray = new int[5]; // 告诉系统: 我需要5个4字节空间, 共20字节
  1. 访问数组中的元素 ( 读/写 )
myArray[3] = 9527; // 把9527写到这个数组的3号元素中 
int number = myArray[3] * 2; // 读3号元素的值, 参与表达式运算

创建数组的一些特殊语法:
在这里插入图片描述

循环遍历数组

顺序遍历

1 for(int i = 0; i < 数组名.length; i++) { 
2  	// i 天生就是数组元素下标! 
3  	..... 数组名[i] ..... 
4 }

要注意不能写成 i <= 数组名.length, 会越界!!!

也可以反向遍历:

for(int i = 数组名.length‐1; i >= 0; i‐‐) { }

还可以使用foreach方式遍历:
在这里插入图片描述

基于数组的常见算法

排序: 排序算法很多, 冒泡, 快速, 归并, 堆排序, 插入排序, … *
冒泡排序口诀: N个元素来排队, 两两相比小靠前, 外层循环N­1, 内层循环N­1­i
在这里插入图片描述
java中的java.util.Arrays类提供了sort方法对数组进行方便地排序:

1 Arrays.sort(数组名);

查找元素:
如果一个数组是乱序的, 要查找其中的元素, 通常只能循环挨个比较, 但要注意在循环结 束之前, 不要轻易下结论!
在这里插入图片描述
如果数组是有序的, 可以使用二分查找法: 直接和中间位置的元素比较, 根据大小关系, 可以直接缩小一半的查找范围

找最大值/最小值
打擂台法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值