JavaDay07 数组


tags :

  • java基础

flag: blue

@toc

JavaDay07 数组

一、生活中的数组

图书馆
<<自控力>> 10本
K-110-01 ~ 10 统一的放到一个书架上
<<我在>>
人类基本的思想:
归纳总结

  1. 放在一起,同一个书架上
  2. 有一个统一的编号 K-110
  3. 每一本书又是一个特定的个体,末尾的编号不同, K-110-01 K-110-04

二、 开发中的问题

在代码中经常使用大量的相同数据类型的变量,如果按照定义变量的格式,需要重复很多次,而且变量名字会各式各样

  1. 过于臃肿,阅读下极差
  2. 变量使用很容易用错

思考的解决方式:

  1. 【数据类型相同】可以放到一起,类似于放到同一个书架上
  2. 给这些数据起一个统一的名字 【数组名】
  3. 通过不同的编号来区分不同的数据 【下标 index】

三、如何定义一个数组

数据类型 变量名 = 数据;
数据类型[] 数组名 = new 数据类型[元素个数];

例如:
int[] array = new int[10];

左边:
int: 数据类型,告诉我们这个数组的空间里面保存的数据是什么类型,这里要求数组里面保存的是int类型的数据

[]:

  1. 告诉我们这是一个数组类型

  2. array数组名是一个【引用】数据类型

    array: 数组名,操作数组要用到的名字,是一个标识符,要符合标识符规范

右边:
new: 关键字 “创建数组的关键字”
int: 数据类型,表示这个数组里面只能保存int类型的数组
[10]: 表示数组的【元素格式】为10,能够保存10个int类型的数组

四、如何使用数组

数组的使用格式:
    数组名[有效下标];
    
数组的有效下标是什么?
    在计算机中,数组的有效下标是从0开始到 元素个数 - 1
    例如:  
        int[] array = new int[10];
        有效下标范围是: 0 ~ 9

数组的内存分析

在这里插入图片描述

地址 【掌握】

  • 生活中地址:
    例如:纬五路21号,是在某条路上的一个编号,而且是唯一的
    通常地址会用到
    快递单 外卖
    代码中类比生活中地址和快递单的关系:

  • 程序中的地址:
    内存的编号
    4GB = 1024 * 1024 * 1024 * 4 byte
    在计算机中能够操作的最小单元就是字节
    计算机给内存按照【字节】为单位 从 “0” 字节开始到 内存的最大值,每一个字节有一个特定的编号,是从0开始到内存最大值

    0 ~ 4294967295 十进制的编号,但是通常地址不管是在任何的语言的当中都是使用 十六进制来表示的

    0x0 ~ 0xFFFFFFFF 内存编号的范围 每一个编号就是对应的【地址】

而在开发中,保存【地址】的变量是一个特殊的变量,在Java中这一类变量称之为【引用类型】变量

null:内存中编号为0的内存首地址
这个空间是收到系统保护的,任何程序都不能对这个空间进行读取和写入操作,如果操作了null空间这个程序会被系统干掉

null 可以用来作为【引用】数据类型变量的初始值

int[] arr = null;

【建议】
1. 多画图
2. 多思考
3. 多使用

数组作为函数的参数

例如:
public static void getNumberFromStdin(int[] array)
public staitc void main(String[] args)

数组的CRUD操作

Read 查

  1. int[] arr = {1, 3, 2, 4, 5, 6, 7, 8, 9, 10};
    静态创建数组的方式
    请告诉我元素值为2的下标是多少?

  2. 用户输入10个数据,找出10个数据中最大值和所在下标
    根据数组的特性,实际上获取到的是数组当中最大值所在下标

  3. 用户出入10个数据,找出最大值和所有的所在下标

Update 改

Create 增
int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0};
要求
1. 0是无效数据,只是占用一个位置
2. 添加的操作不能影响数组的顺序

增加
情况1:
20 放到17 之后
{1, 3, 5, 7, 9, 11, 13, 15, 17, 20};
情况2:
4 放到3 之后
{1, 3, 4, 5, 7, 9, 11, 13, 15, 17};
情况3:
-1 放到下标为0 的位置
{-1, 1, 3, 5, 7, 9, 11, 13, 15, 17};

Delete 删
int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
要求
1. 0是无效数据,只是占用一个位置
2. 添加的操作不能影响数组的顺序

删除
情况1:
19
{1, 3, 5, 7, 9, 11, 13, 15, 17, 0};
情况2:
11
{1, 3, 5, 7, 9, 13, 15, 17, 19, 0};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值