Java数组的定义及用法

简介:

数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。
  1. 一维数组
  1.1 一维数组的定义
  type arrayName[];
  type[] arrayName;
  当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。
  另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统并未对事实上例化,仅仅需指明变量的类型就可以,也不需在[]指定数组大小。(第一种形式是不是仅仅是为了兼容曾经的习惯,毕竟C语言的影响太大了?)
  比如:
  int intArray[];
  声明了一个整型数组,数组中的每一个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素个数,即数组长度,并且对于如上定义的一个数组是不能訪问它的不论什么元素的。我们必须为它分配内存空间,这时要用到运算符new,其格式例如以下:
  arrayName=new type[arraySize];
  当中,arraySize指明数组的长度。如:
  intArray=new int[3];
  为一个整型数组分配3个int型整数所占领的内存空间。
  通常,这两部分能够合在一起,格式例如以下:
  type arrayName=new type[arraySize];
  比如:
  int intArray=new int[3];
  1.2 一维数组元素的引用
  定义了一个数组,并用运算符new为它分配了内存空间后,就能够引用数组中的每个元素了。数组元素的引用方式为:
  arrayName[index]
  当中:index为数组下标,它能够为整型常数或表达式。如a[3],bi,c[6*I]等。下标 从0開始,一直到数组的长度减1。对于上面样例中的in-tArray数来说,它有3个元素,分别为:
  intArray[0],intArray[1],intArray[2]。注意:没有intArray[3]。
  另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同一时候,对于每一个数组都有一个属性length指明它的长度,比如:intArray.length指明数组intArray的长度。
  执行结果例如以下:
  C:/>java ArrayTest
  a[4]=4
  a[3]=3
  a[2]=2
  a[1]=1
  a[0]=0
  该程序对数组中的每一个元素赋值,然后按逆序输出。
  1.3 一维数组的初始化
  对数组元素能够依照上述的样例进行赋值。也能够在定义数组的同一时候进行初始化。
  比如:
  int a[]={1,2,3,4,5};
  用逗号(,)分隔数组的各个元素,系统自己主动为数组分配一定空间。
  与C中不同,这时Java不要求数组为静态(static),事实上这里的变量相似C中的指针,所以将其作为返回值给其他函数使用,仍然是有效的,在C中将局部变量返回给调用函数继续使用是刚開始学习的人非常easy犯的错误。
  2. 多维数组
  与C、C++一样,Java中多维数组被看作数组的数组。比如二维数组为一个特殊的一维数组,其每一个元素又是一个一维数组。以下我们主要以二维数为例来进行说明,高维的情况是相似的。
  2.1 二维数组的定义
  二维数组的定义方式为:
  type arrayName[][];
  比如:
  int intArray[][];
  与一维数组一样,这时对数组元素也没有分配内存空间,同要使用运算符new来分配内存,然后才干够訪问每一个元素。
  对高维数组来说,分配内存空间有以下几种方法:
  1. 直接为每一维分配空间,如:
  int a[][]=new int2;
  2. 从最高维開始,分别为每一维分配空间,如:
  int a[][]=new int[2][];
  a[0]=new int[3];
  a[1]=new int[3];
  完毕1中同样的功能。这一点与C、C++是不同的,在C、C++中必须一次指明每一维的长度。
  2.2 二维数组元素的引用
  对二维数组中每一个元素,引用方式为:arrayNameindex1 当中index1、index2为下标,可为整型常数或表达式,如a2等,相同,每一维的下标都从0開始。
  2.3 二维数组的初始化
  有两种方式:
  1. 直接对每一个元素进行赋值。
  2. 在定义数组的同一时候进行初始化。
  如:int a[][]={{2,3},{1,5},{3,4}};
  定义了一个3×2的数组,并对每一个元素赋值。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
11月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
10月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
存储 Java 索引
java 数组
在 Java 中,数组是一种数据结构,用于存储多个相同类型的数据元素。数组的大小一旦创建后就不能改变,因此它是固定长度的。Java 数组是一种 对象,即使它存储的值是基本类型(如 int、double 等),它也是一个对象引用。
258 0
|
存储 人工智能 Java
打乱数组内容引发的问题( Java)
本文介绍了两种实现数组随机打乱的方法,并深入探讨了Java中原始数据类型与对象类型的差异。方法一通过自定义随机数交换数组元素位置,方法二借助`Collections.shuffle()`函数完成数组打乱。同时,文章详细解析了`int`和`Integer`的区别,包括声明方式、内存占用、初始化以及对象特性等,并讲解了自动装箱与拆箱的功能,帮助读者更好地理解Java的基础知识。
247 0
|
存储 Java 数据挖掘
Java 中数组的多种定义方式
本文深入解析了Java中数组的多种定义方式,涵盖基础的`new`关键字创建、直接初始化、动态初始化,到多维数组、`Arrays.fill()`方法以及集合类转换为数组等高级用法。通过理论与实践结合的方式,探讨了每种定义方法的适用场景、优缺点及其背后的原理,帮助开发者掌握高效、灵活的数组操作技巧,从而编写更优质的Java代码。
811 0
|
前端开发 Java
java前端:删除数组中指定元素的方法
java前端:删除数组中指定元素的方法
365 1
|
存储 Java 索引
Java快速入门之数组、方法
### Java快速入门之数组与方法简介 #### 一、数组 数组是一种容器,用于存储同种数据类型的多个值。定义数组时需指定数据类型,如`int[]`只能存储整数。数组的初始化分为静态和动态两种: - **静态初始化**:直接指定元素,系统自动计算长度,如`int[] arr = {1, 2, 3};` - **动态初始化**:手动指定长度,系统给定默认值,如`int[] arr = new int[3];` 数组访问通过索引完成,索引从0开始,最大索引为`数组.length - 1`。遍历数组常用`for`循环。常见操作包括求和、找最值、统计特定条件元素等。
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
597 157
|
Java 索引
Java系列 之 Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan
这篇文章介绍了Java中数组复制的四种方法:`Arrays.copyOf()`、`Arrays.copyOfRange()`、`System.arraycopy()`和`clone()`方法,以及它们的使用场景和示例代码。