数组
概念
定义
数组是相同类型数据的有序集合
声明与创建
//声明数组
/*
数据类型[]+数组名;(优先选择)
数据类型+数组名[];(不建议使用)
*/
int[] nums;
//创建数组
nums = new int[10];//创建一个有十个int类型元素的数组(下标为0-9)
基本特点
- 数组一旦创建,长度确定
- 同一数组中的所有元素数据类型相同
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型
- 数组本身是对象,其中每个元素相当于该对象的成员变量(JAVA中对象都是在堆中的)
数组边界
数组下标范围:[0,length-1]
ArrayIndexOutOfBoundsException//数组下标越界异常报错
内存
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ty8FAmqV-1628130055797)(C:\Users\13719\AppData\Roaming\Typora\typora-user-images\image-20210803095138949.png)]
初始化
//静态初始化
//数据类型[]+数组名 = {元素1值,元素2值……};
//动态初始化
//数据类型[]+数组名 = new 数据类型[元素个数];
多维数组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwGTEao4-1628130055799)(C:\Users\13719\AppData\Roaming\Typora\typora-user-images\image-20210803133220046.png)]
//定义
int[][] array = {
{
1,2},{
3,4}};//[]个数表示数组维数
//调用
int num = array[0][1];
Arrays类
提供一些数组的方法。
调用
import java.util.Arrays;//ctrl+鼠标左键选择Arrays可以查看具体方法
Arrays.fill(a,666);//Arrays.方法名:即可调用该方法
排序(8种)
稀疏数组
原始数组行数 | 原始数组列数 | 原始数组重复最多的元素(通常为0) |
---|---|---|
非零元素所在行 | 非零元素所在列 | 非零元素值 |
非零元素所在行 | 非零元素所在列 | 非零元素值 |
…… | …… | …… |
示例
声明与创建
package course.lesson.array;
public class Demo01 {
public static void main(String[] args) {
//声明数组
int[] nums;
//创建数组
nums = new int[10];//创建一个有十个int类型元素的数组(下标为0-9)
//数组元素赋值
nums[0]=0;
nums[1]=1;
nums[2]=2;
nums[3]=3;
nums[4]=4;
nums[5]=5;
nums[6]=6;
nums[7]=7;
nums[8]=8;
nums[9]=9;
//获取数组长度
int size=nums.length;
//计算数组元素和
int sum=0;
for(int i=0;i<size;i++){
sum+=nums[i];
}
System.out.println("总和为:"+sum);
}
}
数组的使用
package course.lesson.array;
public class Demo03 {
public static void main(String[] args) {
//定义数组
int[] nums = {
1,2,3,43,53,12};
//输出所有元素
//for循环输出
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+"\t");
}
System.out.println("\n"+"=========================");
//增强for..each循环输出
for(int num:nums){
System.out.print(num+"\t");
}
Sys