Java基础07--数组

本文详细介绍了Java中的数组,包括数组的概述、一维数组的声明、初始化和遍历,以及二维数组的使用。此外,还讲解了数组的常见算法,如数组的赋值与复制、元素反转、查找和排序。最后,提到了Arrays工具类的使用和数组可能遇到的异常,如数组角标越界和空指针异常。
摘要由CSDN通过智能技术生成

数组

数组的概述

1. 数组的理解:
数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

2.数组的常见概念:

数组名
元素
角标、下标、索引
数组的长度:元素的个数

3.数组的特点:

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

4.数组的分类:
①按照维数:一维数组、二维数组、多维数组…
②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

一维数组

一维数组的使用:
① 一维数组的声明和初始化
② 如何调用数组指定位置的元素
③ 如何获取数组的长度
④ 如何遍历数组
⑤ 数组元素的默认初始化值
⑥ 数组的内存解析

1.一维数组的声明与初始化

示例代码:

正确的方式:
	//1 一维数组的声明和初始化
		
		//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
		int[] ids;
		ids = new int[] {
   1001,1002,1003,1004};
	
	int[] ids1 = {
   1001,1002,1003,1004};
		
		//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[5];

错误的方式:
//		int[] arr1 = new int[];
//		int[5] arr2 = new int[];
//		int[5] arr2 = new int[5];
//		int[] arr2 = new int[3] {2,1,3};

2.一维数组元素的引用:通过角标的方式调用。

示例代码:

//数组的角标(或索引从0开始的,到数组的长度-1结束。
	names[0] = "老婆:"; 
	names[1] = "迪丽热巴"; 
	names[2] = "张子枫"; 
	names[3] = "佟丽娅";
	names[4] = "李沁";

3.数组的属性:length

示例代码:

	System.out.println(names.length);
	System.out.println(ids.length);

4.一维数组的遍历

示例代码:

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

5.一维数组元素的默认初始化值

	 * > 数组元素是整型:0
	 * > 数组元素是浮点型: 0.0
	 * > 数组元素是char型: 0 或 '/u0000' 而非 '0'
	 * > 数组元素是boolean型:false
	 * 
	 * > 数组元素是引用数据类型:null

6.一维数组的内存结构
一维数组内存解析

二维数组的使用

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

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

1.理解
数组属于引用数据类型,
数组的元素也可以是引用数据类型,
一个一维数组A的元素如果还是一个以为数组类型的,则,此数组A称为二维数组。

我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
其实,从数组底层的运行机制来看,其实没多维数组。

2.二维数组的使用:
① 二维数组的声明和初始化
② 如何调用数组指定位置的元素
③ 如何获取数组的长度
④ 如何遍历数组
⑤ 数组元素的默认初始化值
⑥ 数组的内存解析

1.二维数组的声明与初始化

示例代码:

正确的方式:
		// 静态初始化
		int[][] arr1 = new int[][] {
    {
    1, 2, 3 }, {
    4, 5 }, {
    6, 7, 8 } };
		// 动态初始化1
		String[][] arr2 = new String[3][2];
		// 动态初始化2
		String[][] arr3 = new String[3][];
	// 这也是正确的
		int[] arr1[] = new int[][] {
    {
    1, 2, 3 }, {
    4, 5 }, {
    6, 7, 8 } };
		int[] arr1[] = {
    {
    1, 2, 3 }, {
    4, 5 }, {
    6, 7, 8 } };//类型推断

2.如何调用二维数组元素:

	System.out.println(arr1[0][1]);// 2
	System.out.println(arr2[1][1]);// null
	arr3[1] = new String[4];// arr3[1]是指arr3这个二维数组的第一行
	System.out.println(arr3[1][0]);// 空指针错误:java.lang.NullPointerException

3.二维数组的属性:

	System.out.println(arr1.length);// 3
	System.out.println(arr1[0].length);// 3
	System.out.println(arr1[1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值