Java新手学习之数组

本文详细介绍了Java中的数组,包括数组的概述、特点、分类和数据结构。接着深入讲解了一维数组和二维数组的声明、初始化、属性、遍历以及默认初始化值。此外,还探讨了数组的内存解析,常见算法如数组的赋值、复制、反转、查找和排序,并介绍了如何使用Array工具类。文章最后提到了数组操作中可能遇到的异常情况和练习题。
摘要由CSDN通过智能技术生成

数组的概述

1.数组的理解

数组array是多个相同类型数据按照一i的那个顺序排列的集合,并使用同一个名字命名,并通过编号的方式对这些数据进行统一的管理。

2.特点

数组是有序排列的
数组属于引用类型的变量,数组的元素,可以是基本数据类型,也可以是引用数据类型
创建数组对象在内存中开辟一整块连续的空间
数组的长度一旦确定,就不能修改

3.数组的分类

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

4.数据结构

数据与数据之间的逻辑关系:集合、一对一、一对多…
数据的存储结构:
线性表:顺序表、链表、栈、队列
树形结构:二叉树
图形结构

5.算法

排序算法
搜索算法

一维数组

一维数组的声明与初始化

静态初始化:
Int[] arr=new int[]{1,2,3};
Int[] arr={1,2,3};(类型推断)
动态初始化:
Int[] arr=new int[3];

数组的引用

通过角标的方式引用,从0开始,到数组的长度(arr.length)-1结束
arr[0]=”王鸥”;
arr[1]=”易烊千玺”;
arr[2]=”高露”;

数组的属性

System.out.println(arr.length);

数组的遍历

for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}

一维数组的默认初始化值

整型:0
浮点型:0.0
Char型:0或’\u0000’
布尔型:false
引用型:null

一维数组的内存解析

在这里插入图片描述

二维数组

二维数组

数组属于引用类型,数组的元素也可以是引用数组类型,一个一维数组的元素还是一个一维数组的,则此数组成为二维数组。

二维数组的声明与初始化

静态初始化
Int[][] arr1=new int[][]{ {1,2,3},{3,4},{5,6}};
Int[] arr1[]=new int[][]{ {1,2,3},{3,4},{5,6}};
Int[] []arr1={ {1,2,3},{3,4},{5,6}};(类型推断)
动态初始化
Int[][] arr2=new int[3][2];
Int[][] arr2=new int[3][ ];

调用二维数组元素

System.out.println(arr1[0][1]); //2
System.out.println(arr2[1][1]); //2

二维数组的属性

System.out.println(arr.length);
System.out.println(arr[0].length);

数组的遍历

for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]+” “);
}

二维数组的默认初始化值

规定二维数组分为外层数组的元素,内层数组的元素

Int[][] arr= new int[3][4];
外层元素:arr[0],arr[1];
内层元素:arr[0][0],arr[1][2];

默认初始化值:
方式一:比如:int[][] arr= new int[3][4];
外层:地址值
内层:与一维数组的初始化情况相同
方式二:比如:int[][] arr= new int[3][];
外层:null
内层:不能调用,否则报错

数组的常见算法

数组的创建与元素赋值

杨辉三角、回形数、

针对数值型的数组

最大值、最小值、总和、平均值

数组的赋值

array2=array1;\将array1保存的数组的地址值赋值给了array2

数组的复制

Int[] array1,array2;
array1=new int[] {1,2,3,4};
array2=new int[array1.length];
for(int i=0;i<array2.length;i++){
array2[i]=array1[i];
}
通过new方式,给array2在堆空间开辟新的空间,将array1的数值一个一个赋值给array2

数组的反转

1)for(int i=0;i<array.length/2;i++){
String temp=arr[i];
Arr[i]=arr[arr.length-i-1];
Arr[arr.length-i-1]=temp;
}
2)for(int i=0,j=arr.length-1;i<j;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值