数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素。

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],b[i](i为整型),c[6*I]等。下标 从0開始,一直到数组的长度减1。对于上面样例中的in-tArray数来说,它有3个元素,分别为:

intArray[0],intArray[1],intArray[2]。注意:没有intArray[3]。

另外,与C、C++中不同,Java对数组元素要进行越界检查以保证安全性。同一时候,对于每一个数组都有一个属性length指明它的长度,比如:intArray.length指明数组intArray的长度。

public class ArrayTest{

public static void main(String args[]){

int i;

int a[]=new int[5];

for(i=0;i<5;i++)

a[i]=i;

for(i=a.length-1;i>=0;i--)

System.out.println("a["+i+"]="+a[i]);

}

}

执行结果例如以下:

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 int[2][3];

2. 从最高维開始,分别为每一维分配空间,如:

int a[][]=new int[2][];

a[0]=new int[3];

a[1]=new int[3];

完毕1中同样的功能。这一点与C、C++是不同的,在C、C++中必须一次指明每一维的长度。

2.2 二维数组元素的引用

对二维数组中每一个元素,引用方式为:arrayName[index1][index2] 当中index1、index2为下标,可为整型常数或表达式,如a[2][3]等,相同,每一维的下标都从0開始。

2.3 二维数组的初始化

有两种方式:

1. 直接对每一个元素进行赋值。

2. 在定义数组的同一时候进行初始化。

如:int a[][]={{2,3},{1,5},{3,4}};

定义了一个3×2的数组,并对每一个元素赋值。

java数组变量定义_JAVA数组的定义及用法相关推荐

  1. JAVA 系统变量之System.getenv()和System.getProperty() 用法

    JAVA 系统变量之System.getenv()和System.getProperty() 用法 Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的 ...

  2. java数组的声明_Java数组定义常用方法

    Java数组定义常用方法 Java中的数组.是一种简单的线性数据存储结构.他用牺牲自动扩展大小来换取与集合相比的唯一优势--查询效率的提升.Java中的数组有什么类型?我们要怎么定义这些数组呢?下面跟 ...

  3. java数组详解_java数组详解

    一维数组 1)   int[] a;   //声明,没有初始化 2)   int[] a=new int[5];   //初始化为默认值,int型为0 3)   int[] a={1,2,3,4,5} ...

  4. js 数组 改变长度_Java数组,什么是Java数组?Java数组学习

    人的生命,似洪水奔流,不遇着岛屿和暗礁,难以激起美丽的浪花. 简介 数组是相同类型数据的有序集合 比如:[1,2,3] ['a','b','c'] 数组描述的是相同类型的若干个数据,按照一定的先后顺序 ...

  5. java的数组查找算法_java数组、排序算法、查找算法详解

    1.为什么定义数组要采用type[] arrayName;这种方式? 因为这种方式具有很好的可读性,使用这种方式很容易就可以理解这是定义一个变量,其中变量名是arrayName,变量的类型是type[ ...

  6. java数组末尾添加元素_java数组添加元素,java数组如何添加一个元素

    java数组如何添加元素 向数组里添加一个元素怎么添加,这儿总结有三种方法: 1.一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度. 但有个可以改变大小的数组为ArrayLis ...

  7. java 数组求交集_Java数组的交集、并集

    // 求两个数组的交集 public static int[] SameOfTwoArrays(int[] arr1, int[] arr2) { // 新建一个空数组,用于存储交集,空数组长度应该为 ...

  8. java一维数组插入元素_Java 数组 之 一维数组 追加 元素

    /** 数组分类 1. 一维数组 1.1 一维数组的定义和初始化 1.2 对一维数组的操作, 遍历,添加,插入,修改,删除,排序,查找 2. 二维数组 2.1 二维数组的定义和初始化 2.2 二维数组 ...

  9. java数组如何赋值_java数组如何赋值

    Java 语言中数组必须先初始化,然后才可以使用.所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值. 初始化数组有以下 3 种方式: 1)使用 new 指定数组大小后进行初始化 ...

最新文章

  1. OpenCV3.3中逻辑回归(Logistic Regression)使用举例
  2. 测试无线节能信标与主控器之间的控制功能
  3. Image打包流程-Android10.0编译系统(四)
  4. 无线覆盖带机量比较大的型号推荐
  5. solr创建core
  6. python基础学习[python编程从入门到实践读书笔记(连载五)]:数据可视化项目第16章
  7. 笔记-计算机网络基础-开放系统互连参考模型OSI
  8. Delphi 与 DirectX 之 DelphiX(72): TDIB.SephiaEffect();
  9. springmvc跨域问题
  10. php 二维数组按照某value值求出最大值最小值
  11. log4j控制日志的输出文件
  12. [SCM]源码管理 - SVN的备份和还原
  13. mysql 分段执行_19个MySQL优化技巧,索引优化这样做最有效!
  14. python global用法_Python 虚拟环境全知道
  15. h5分享到微信唤起app功能
  16. mbp使用brew安装unrar
  17. GO语言-数据结构-队列
  18. 仿JD商城UI布局达到90%——Android源码
  19. 定时提醒软件有哪些 定时提醒便签推荐
  20. MQTT协议使用总结

热门文章

  1. pg 9.3 新关键字 lateral 的用法.
  2. Problem 9: 早上好,下午好还是晚上好
  3. 关键词采集器-关键词自动采集发布
  4. 华为鸿蒙填申请表,鸿蒙申请,这里填什么吗?
  5. Qt笔记——Qt初探、PyQt5和Qt5
  6. Windows路由表详解
  7. 分享一个C#调用摄像头的类
  8. 史上最全的Java进阶书籍推荐,你看了几本?
  9. 安装2008服务器系统,win2008服务器系统安装教程
  10. OpenAPI规范3.1.0