Java 数组

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

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

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

本篇将介绍 Java 数组的声明,创建,初始化和遍历,并给出其对应的代码。

声明数组变量

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

dataType[]arrayRefVar; //首选的方法或 dataTypearrayRefVar[]; //效果相同,但不是首选方法

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

创建数组

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

arrayRefVar =newdataType[arraySize];

上面的语法语句做了两件事:

一、使用 dataType[arraySize] 创建了一个数组。

二、把新创建的数组的引用赋值给变量 arrayRefVar。

数组变量的声明,和创建数组可以用一条语句完成,如下所示:

dataType[]arrayRefVar =newdataType[arraySize];

另外,你还可以使用如下的方式创建数组。

dataType[]arrayRefVar ={value0,value1,...,valuek};

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。

1 public classTestArray {              //创建数组并初始化2 public static voidmain(String[] args) {3 double[] myList = {1.9, 2.9, 3.4, 3.5};

4

5 //遍历输出所有数组元素

6 for (int i = 0; i < myList.length; i++) {7 System.out.println(myList[i] + " ");8 }

以上实例编译运行结果如下:

1.9

2.9

3.4

3.5

For-Each 循环

JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

语法格式如下:

1 for(type element: array)2 {3 System.out.println(element);4 }

数组作为函数的参数

数组可以作为参数传递给方法。

例如,下面的例子就是一个打印 int 数组中元素的方法:

public static void printArray(int[] array) {for (int i = 0; i < array.length; i++) {

System.out.print(array[i]+ " ");

}

}

下面例子调用 printArray 方法打印出 3,1,2,6,4 和 2:

printArray(new int[]{3, 1, 2, 6, 4, 2});

数组作为函数的返回值

public static int[] reverse(int[] list) {int[] result = new int[list.length];for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {

result[j]=list[i];

}returnresult;

}

以上实例中 result 数组作为函数的返回值。

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

Stringstr[][]= newString[3][4];

多维数组的动态初始化(以二维数组为例)

1. 直接为每一维分配空间,格式如下:

type[][]typeName= newtype[typeLength1][typeLength2];

type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数,arraylenght1 为行数,arraylenght2 为列数。

例如:

inta[][]= newint[2][3];

解析:

二维数组 a 可以看成一个两行三列的数组。

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

Strings[][]= newString[2][]; s[0]= newString[2]; s[1]= newString[3]; s[0][0]= newString("Good"); s[0][1]= newString("Luck"); s[1][0]= newString("to"); s[1][1]= newString("you"); s[1][2]= newString("!");

解析:

s[0]=new String[2] 和 s[1]=new String[3] 是为最高维分配引用空间,也就是为最高维限制其能保存数据的最长的长度,然后再为其每个数组元素单独分配空间 s0=new String("Good") 等操作。

多维数组的引用(以二维数组为例)

对二维数组中的每个元素,引用方式为 arrayName[index1][index2],例如:

num[1][0];

Arrays 类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

给数组赋值:通过 fill 方法。

对数组排序:通过 sort 方法,按升序。

比较数组:通过 equals 方法比较数组中元素值是否相等。

查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

序号方法和说明

1

public static int binarySearch(Object[] a, Object key)

用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。

2

public static boolean equals(long[] a, long[] a2)

如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

3

public static void fill(int[] a, int val)

将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

4

public static void sort(Object[] a)

对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

java数组声明语句是_Java数组的声明和遍历相关推荐

  1. java 数组声明并初始化_Java数组的声明与初始化

    在<Java数组简介>一节中,我们已经了解了什么是数组.什么是基本数据类型的数组,那么大家是不是迫不及待地想知道一个基本数据类型的数组是什么样子的呢?下面我们就一起来揭开它神秘的面纱吧! ...

  2. java 数组减除值_java数组操作 - osc_hwpd2zko的个人空间 - OSCHINA - 中文开源技术交流社区...

    什么是数组: 程序 = 算法+数据结构 算法:解决问题的步骤,流程(顺序,分支,循环) 数据结构:将数据按照某种特定的结构来保存 数怎么存 设计良好的,合理的数据结构可以导致好的算法 数组:就是一种最 ...

  3. java数组元素是类_Java数组及其常用类

    本文由疯狂软件教育中心整理,更多Java等高新技术,疯狂软件期待与你交流. 一.JAVA中的数组 (1)数组的定义:是有相同类型的.用一个标识符名称封装到一起的一个对象序列或基本数据类型数据序列. 数 ...

  4. java 使用vsphere 创建虚拟机‘_Java数组的创建及使用

    数组是具有相同数据类型的一组数据的集合,作为对象允许使用new关键字进行内存分配.首先先来熟悉一下一维数组的创建和使用. 声明一维数组,有下列两种方式: 数组元素类型 数组名字[]; 数组元素类型[] ...

  5. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  6. java数组中怎么去重_java数组去重怎么弄???大神来解

    [Java] 纯文本查看 复制代码public class TestDemo { public static void main(String[] args) { //10个整数{9,10,6,6,1 ...

  7. java数组使用实验报告_JAVA数组与类的定义-java实验报告

    JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...

  8. java数组初始化的方式_java数组初始化方式

    在使用一个新的数组之前,要先对其中的数值进行设置,也就是我们常说的初始化工作.因为数组有长度和内容的区分,所以常见的两种初始化方法是动态和静态,另外一种就是默认初始化.下面我们对数组的初始化概念进行理 ...

  9. java二维数组杨辉三角_java数组学习:使用二维数组输出杨辉三角

    import java.util.Scanner; /* 输出二维数组"杨辉三角" i\j0 1 2 3 4 5 01 11  1 21  2  1 31 3 3  1 41  4 ...

最新文章

  1. 删除 此电脑 文件夹
  2. 在Windows下安装chromedriver
  3. 浅谈C/C++中的typedef和#define
  4. MSU公布2019视频压缩评比报告客观部分
  5. .NetCore如何使用ImageSharp进行图片的生成
  6. class会不会回收?用不到的class怎么回收_牛X的java程序员必备的GC基础知识, 面试肯定用的到...
  7. tcp校验和计算校验和例子_wireshark与TCPIP校验和
  8. struts2 在拦截器进行注入(依据Action是否实现自己定义接口)
  9. 渗透测试实战分享—从app到网站沦陷
  10. 梦工厂将在红帽峰会畅谈云计算心得
  11. 大数据——DBT:dbt的数据质量监控插件re_data二次开发及编译(生产环境篇)
  12. C 语言 long long 和 double输入输出格式问题
  13. c语言中输入n一个整数存入一维数组,编写程序输入n个整数到一维数组(先输入数据的个数n,再输入n个数据),然后以输入的顺序输出这些数。...
  14. 表白公式计算机,表白公式数学公式简单的方式
  15. 武汉有哪些大学 计算机专业比较强,武汉有哪些计算机好的大学排名
  16. python读取文件夹下txt文件,并转化成excel
  17. Ubuntu解决搜狗输入法乱码
  18. 【经验分享】zlib库在Ubuntu下的安装和配置
  19. 二级vb笔试题库__全国计算机等级考试,XYZ计算机等级考试题库系统(二级VB)
  20. android beam传输速率,三星S Beam 与Android Beam有什么不同

热门文章

  1. 设计模式面试大全+视频教学,两天掌握设计模式!!!吊打面试官,offer拿到手疼
  2. 华科计算机博士2201,2018年华中科技大学2201高等工程数学考博大纲
  3. 公开“英特尔多核平台编程优化大赛”优化报告及源代码
  4. 超详细讲解ArcGIS中地形指标的提取(附练习数据下载)
  5. gm11模型 MATLAB源代码,灰色预测模型 GM(1,1)- 级比检测不通过 - 平移变换常数c的确定(内含代码)...
  6. linux不定循环语法,shell 循环
  7. 基于android平台unity3d游戏设计与实现,Unity3D微信小游戏平台的设计与实现毕业设计(论文)开题报告及工作计划书...
  8. 华硕电脑软件测试案例,华硕(ASUS)Eee Pad TF101 标准版平板电脑软件测试评测-ZOL中关村在线...
  9. iOS PassKit Wallet 开发(Passbook 开发)
  10. Windows XP和Office2003通过正版验证,免去黑屏之忧