数组的定义和访问
容器的概念
容器是将多个数据存储到一起,每个数据成为该容器中的元素
生活中的容器:水杯 excel 教室
数组概念
数组就是存储数据长度固定的容器,保证每个数据的数据类型要一致
数组的定义
格式:
第一种方法:
数组存储的数据类型[] 数组名称 = new 数组储存的数据类型[长度];
1> 数组存储的数据类型:决定了该数组容器能够存储什么样的数据
2> []:表示数组
3> 数组名称:给定义数组起一个变量的名字,需要满足标识符的命名规范
4> new : 关键字,创建数组使用的关键字
5> 数组储存的数据类型:决定了该数组容器能够存储什么样的数据
6> [长度]:数组的长度,表示数组中能够存储多少个元素, 一般用的是>= 大于等于0 的整数,正整数
备注:数组一旦创建,长度不能发生改变(如果需要建议新建一个指定长度的数组,进行赋值)
// 练习数组的知识
public class ArrayDemo01{
public static void main(String[] args){
// 创建了一个int类型,能存放5个元素的数组
int[] arrInt = new int[5];
// 格式
// 数组存储的数据类型[] 数组名称 = new 数组储存的数据类型[长度];
// 成绩 可以用整数类型
// 可以存放40个整数类型元素的数组
int[] scores = new int[40];
// 名字用字符串类型
String[] names = new String[40];
// 性别 可以使用布尔类型
boolean[] genders = new boolean[40];
// 身高 可以使用浮点类型
double[] heights = new double[40];
// 体重
double[] weights = new double[40];
// 年龄
int[] ages = new int[40];
// 地址
String[] address = new String[40];
// 出生日期
String[] birthday = new String[40];
}
}
方式二:
格式
数组的数据类型[] 数组名称 = new 数组的数据类型[]{ 元素1,元素2, ... ,元素N };
// 使用方式二创建数组
public class ArrayDemo02{
public static void main(String[] args){
//
// 数组的数据类型[] 数组名称 = new 数组的数据类型[]{ 元素1,元素2, ... ,元素N };
String[] name = new String[]{"ZR","GG"};
// 存储年龄
int[] ages = new int[]{16,17,18};
// 存储出生日期
String[] birthdays = new String[]{"1990-1-1","2020-1-1"};
// 存储手机号
String[] phone = new String[]{"12345678901","09876543211"};
// 存储午饭
String[] lunch = new String[]{"food","rice"};
// 房间号
String[] num = new String[]{"1406","1408"};
}
}
方式三:
格式
数组的数据类型[] 数组名称 = {元素1,元素2, ... , 元素N};
// 使用第三种方式创建数组
public class ArrayDemo03{
public static void main(String[] args){
//
// 数组的数据类型格式[] 数组名称 = {元素1,元素2, ... ,元素N};
// 存储姓名
String[] names = {"RR","GG"};
// 存储年龄
String[] ageas = {"18","28"};
// 存储性别
char[] gender = {'男','女'};
}
}
2.数组的特点
数组的特点
1. 数组的长度在程序运行期间不可改变;
2. 数组本身就是一种引用数据类型;
3. 数组定义时是引用数据类型,但是数组容器里面存储的元素是基本数据类型也可以是引用数据(多维数组)
4. 数组当中存储的多个数据,类型保持一致
3.数组的初始化
数组的初始化
int[] scores; // 声明一个int类型,名为scores的数组
scores = new int[41] // 初始化 // 相当于内存中存储了41个0
初始化:在内容当中创建了一个数组,并且向其中赋了一些默认值
不同的数据类型有不同的默认值
int整数类型默认值是 0
浮点数的默认值是 0.0
字符类型默认值是 '\u0000' (这是一个空格)
布尔类型的默认值是 false
引用类型是 null
4.静态初始化
静态初始化,需要指定内容
方式二,方式三
创建数组的时候,不指定数组的长度,而是直接指定具体的元素
静态初始化虽然没有直接指定长度,但是程序会推算得到该数组的长度
5.动态初始化
动态初始化,只指定长度,不赋值只用默认值
方式一
不说明内容,只说明元素
6.备注
如果不确定数组当中存储的内容是,用动态初始化
如果内容已经确定,使用静态初始化
大多数情况下建议使用动态初始化
7.数组的访问
//索引值: 角标,下标
每一个存储到数组当中的元素,都会自动的分配一个编号
默认从[0]开始,这个系统自动分配的编号成为数组的索引 index
可以通过索引访问数组当中的元素
格式
数组名称[index]
8. 数组的长度属性
每个数组都有长度,而且是固定的,java会自动赋给数组一个属性,可以获取到数组的长度属性
格式
数组名称.length
属性length代表的就是数组的长度
是一个int类型
数组的最大索引值是: (数组名.length - 1)
9.索引访问数组当中的元素操作
修改数组当中的索引对应位置上的值: 数组名[索引] = 数值
变量 = 数组名称[索引] 从数组当中取出一个数值赋给一个变量
// 访问数组中的元素操作2
public class ArrayUseDemo05{
public static void main(String[] args){
//
// 动态初始化一个数组;
int[] arr = new int[10];
// 数组名[索引] = 数值
// 访问到数组中的第五个元素,把第五个元素赋值为10
arr[4] = 10;
System.out.print(arr[4]);
// 访问到数组中的第10个元素,把第五个元素赋值为100
arr[9] = 100;
System.out.print(arr[9]);
// 访问到数组中的第7个元素,把第五个元素赋值为50
arr[6] = 50;
System.out.print(arr[6]);
// 访问到数组中的第3个元素,把第五个元素赋值为25
arr[2] = 25;
System.out.print(arr[2]);
// 访问到数组中的第8个元素,把第五个元素赋值为-30
arr[7] = -30;
System.out.print(arr[7]);
// 把数组当中的第五个元素赋值num变量
int num = arr[4];
System.out.println(num);
// 直接打印数组名称,得到对应数组对应的:内存地址哈希值
System.out.println(arr);
// 数据类型 @ 十六进制的哈希值
}
}
整数表示
十进制 0123456789
二进制 01
十六进制 0123456789ABCDEF
八进制 01234567