04. 【Java】数组(Array)

本文详细介绍了Java中数组的概念,包括一维数组的声明、分配内存、赋值、获取长度和打印元素。接着讲解了二维数组和多维数组的创建、赋值,以及不规则数组的声明和操作。最后讨论了数组的基本操作,如遍历和填充元素。通过实例展示了如何在Java中使用数组存储和处理数据。
摘要由CSDN通过智能技术生成

数组是最常见的一种数据结构,分为一维数组、二维数组以及多维数组,是把相同数据类型的元素,用一个标识符封装到一起的基本数据序列或者对象序列。

数组的主要内容如下:
在这里插入图片描述
数组是具有相同数据类型的一组数据的集合。数组中的每个元素具有相同的数据类型。在Java中将数组看作一个对象,虽然基本数据类型不是对象,但是由基本数据类型数据组成的数组则是对象。在程序设计中利用数组存储和处理数据可以起到很好的数据管理作用。

  • 变量和数组的关系
    在这里插入图片描述

一、一维数组

一维数组是一组相同数据类型的线性集合。例如学生排成一列队伍,这个队伍就是数组,学生就是数组中的每个元素。

1、创建一维数组

数组元素的数据类型决定了数组的类型。他们可以是Java中任意的数据类型,包括基本数据类型和其他引用类型。数组的名字为一个合法的标识符,符号"[]“指明变量是一个数组类型变量,单个”[]"是指创建的数组是一个一维数组。

(1)声明一维数组的两种方式:

数组元素类型 数组名字 [];
数组元素类型[] 数组名字;

(2)声明一维数组的语法:

int arr[];
double[] dou[];
....
short[] sht[];

声明数组后,还不能访问它的任何元素,需要给数组分配内存空间

(3)给声明好的数组分配内存空间

数组名字 = new 数组元素类型[数组元素的个数];
  • 数组名字:声明好的要使用的数组名称;
  • 数组元素个数:执行数组中元素变量的个数,即数组的长度;
arr = new int[5]   //整型数组长度为5

(4)一维数组的内存模式

声明好数组并且给数组分配内存空间后,就完成了准备工作。接下来给数组填充元素,也就是创建数组,这个数组就可以被访问了。在创建数组过程中,数组对象会被赋给引用变量,假设我们引用的变量是arr,就是指引用变量arr这个数组。当我们要访问被创建的每个元素时,需要通过每个元素在arr中的下标,也就是索引来进行。

数组的下标时从0开始的,假设我们创建的数组有5个元素,这些元素的索引就是0~4。在这里插入图片描述

(5)声明数组的同时给数组分配内存空间

我们可以用复合语句将声明数组和给数组分配内存空间这两个动作同时完成。这也是编写java程序过程中常用的方法:

int month[] = new int[12];

2、给一维数组赋值

数组可以和基本数据类型一样进行初始化操作,即给数组赋值。数组的初始化可分别初始化数组中的每个元素。

(1)数组初始化的方法

int a [] = {
   1,2,3};           //第一种方式
int b [] = new int[]{
   4,5,6};  //第二种方式
int c [] = new int[5];        //第三种方式
c[0] = 7;
c[1] = 8;
c[2] = 9;

3、获取数组长度

初始化数组时会给数组分配内存空间,内存空间的大小决定了数组的存储能力。如果不知道数组被分配的内存空间情况,我们可以使用数组对象自带的length属性来查看:

arr.length;
  • arr:数组名
  • length:数组长度属性,返回int值
实例1:获取班级总人数

创建GetArrayLength类,将班级每个人的名字存在一个字符串数组,然后调用数组的length属性查看班级总人数。

public class GetArrayLength {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		String class1[] = {
   "Bob","Alice","Tom","Tony"};
		System.out.println("此班级共有"+ class1.length + "人");
	}

}
Console:
此班级共有4

4、打印数组元素

数组在内存中以对象的形式存储,直接访问数组对象打印的是数组的内存地址,不能直接打印数组元素。数组中的元素可以被访问,我们依次访问数组元素就可以打印出数组。

实例2:打印一年中各月的天数

在项目中创建GetDay类,在主方法中创建int型数组,并实现将各月的天数输出。

public class GetDay {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		int day[] = new int[] {
   31,28,31,30,31,30,31,31,30,31,30,31};
		for (int i = 0 ; i < day.length;i++) {
   
			System.out.println((i+1) + "月的天数是:"+day[i]);
		}
	}

}
Console:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值