数组的介绍

数组的介绍

数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。

数组的基本特点
长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

其中元素必须是相同类型,不允许出现混合类型。元素的类型可以是Java支持的任意类型。

数组类型可以是任何数据类型,包括基本类型和引用类型。

数组的元素在堆内存中被分配空间,并且是连续分配的。

使用new关键字对数组进行内存的分配。每个元素都会被JVM赋予默认值。默认规则:

整数:0

浮点数:0.0

字符:\u0000

布尔:false

引用数据类型:null

数组的元素都是有序的,序号从0开始,称作数组的下标、索引、角标。


数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。

数组是用来存储固定大小的同类型元素。 

当你需要存储数值列表(如数字)时,可以将它们存储在数组中,而不是为每个数字声明单独的变量。

要声明一个数组,你需要用方括号定义元素的类型。

下面是一个例子,声明一个整数数组:

int[] arr;

上面的例子中,数组的名字是arr。它将包含的元素的类型是int。

Java 语言使用 new 操作符来创建数组,例如: 

int[] arr= new int[10];

上面的例子中,声明了一个由10个整数组成的数组。

在一个数组中,这些元素是有序的,并且每个元素都有一个特定的和固定的位置,这个位置被称为索引。

要引用数组中的元素,请在一对方括号内键入数组名称,后跟索引位置。

数组创建可以分为动态和静态两种

动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

​ char [] chAry = new char [];

静态创建数组,在创建的时候,即为每个元素赋初始值

​ int [] ary1 = new int [] {1,2,3,4,5};

数组的长度:length属性

​ int [] b1 = new int [] {1,2,3,4,5,6,7};

​ System.out.println(b1.length);

数组的初始化
静态初始化:int [] arr = {1,2,3}; //静态初始化基本数据类型;

动态初始化:int[] arr = new int[2]; //动态初始化数组,先分配空间;

​ arr[0] = 1; //给数组元素赋值;

​ arr[1] = 2; //给数组元素赋值;

默认初始化

​ int arr[] = new int[2]; //默认值0.0

​ boolean[] b = new boolean[2]; //默认值:false,false

​ String[] s = new String[2]; //默认值:null,null

声明数组变量


首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

dataType[] arrayRefVar;   // 首选的方法
 
dataType arrayRefVar[];  // 效果相同,但不是首选方法
注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

注:

      数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。

初始化数组


Java 初始化数组是非常便捷的。

如果您已经知道插入到数组中的值,则可以使用数组字面值。

数组字面值允许我们声明我们需要的元素个数并指定数据类型。

下面是一个初始化数组的例子,将值放在逗号分隔的列表中,并用花括号括起来。

提示:声明数组变量时,将 [] 操作符放在数组名后面(如String myList[];),效果是相同的,但首选的方法是将 [] 操作符放在数组的数据类型之后(如String[] myList;)。

数组基本特点


  ①数组长度是确定的

  ②元素必须是相同类型

  ③数组中的元素可以是任何数据类型,包括基本类型和引用类型

  ④数组对象本身是保存在堆中的,数组也是对象

数组边界问题


  ①下标合法区间—[0,length-1]

  ②数组越界会报ArrayIndexOutOfBoundsException异常

多维数组


  多维数组可以看成是数组的数组

 

  例如:int[] [] nums=new int[3] [2];

根据数组的维数可分为:

一维数组
二维数组
多维数组

数组的优缺点


优点

可以保存若干个数据。
随机访问的效率很高,根据下标访问元素效率很高。


缺点

数组的元素的类型必须一致,元素类型必须一致。
连续分配空间在堆中,如果数组的元素很多,对内存的要求更加的严格。
根据内容查找元素效率比较低,需要移动大量的元素。
数组定长,不能自动扩容。
数组没有封装,数组对象只提供了一个数组长度的属性,但是没有提供方法用来操作元素。Java提供了一整套的、针对不同需求的、对于容器的解决的方案。集合框架部分,不同的容器有不同的特点,满足不同的需求。数组的缺点都会被消除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值