Java数组详解

 数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。

  数组属于引用型变量,创建数组需要经过声明数组和为数组分配变量两个步骤。

  声明数组

  声明数组包括数组变量的名字(简称数组名)、数组的类型。

  声明一维数组有下列两种格式

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

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

  例如: float boy[];

  float[] boy;

  声明二维数组有下列两种格式

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

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

  例如: char cat[][];

  char[][] cat;

  分配变量

  声明数组后,还必须为它分配内存空间,为一维数组分配内存空间的格式如下:

  数组名字 = new 数组元素的类型[数组元素的个数];

  例如: float boy[];

  boy= new float[4];

  声明数组和创建数组可以一起完成,例如:

  float boy[]=new float[4];

  这是一个长度为4的boy数组类型

  二维数组和一维数组一样,在声明之后必须用new运算符为数组分配内在空间。

  例如: int mytwo[][];

  mytwo = new int [3][4];

  声明数组和创建数组可以一起完成,例如:

  int mytwo[][] = new int[3][4];

  Java采用“数组的数组”来声明多维数组。上述创建的二维数组mytwo就是由3个长度为4的一维数组:mytwo[0]、mytwo[1]和mytwo[2]构成的。

  使用数组

  一维数组通过索引符访问自己的元素,如boy[0],boy[1]等。需要注意的是索引从0开始 。

  二维数组也通过索引符访问自己的元素,如a[0][1],a[1][2]等。需要注意的是索引从0开始。

  比如声明创建了一个二维数组a:

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

  那么第一个索引的变化范围为从0到1,第二个索引变化范围为从0到2。

  Length的使用

  数组的元素的个数称作数组的长度。

  对于一维数组,“数组名.length”的值就是数组中元素的个数。

  对于二维数组“数组名.length”的值是它含有的一维数组的个数。

  例如,对于

  float a[] = new float[12];

  int b[][] = new int[3][6];

  a.length的值12;而b.length的值是3。

  数组的初始化

  创建数组后,系统会给数组的每个元素一个默认的值,如,float型是0.0。

  在声明数组的同时也可以给数组的元素一个初始值,如:

  float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};

  也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,

  例如:

  int a[][]= {{1}, {1,1},{1,2,1}, {1,3,3,1},{1,4,6,4,1}};

  数组的引用

  数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

  例如,对于int a[] = {1,2,3}, b[ ]= {4,5};数组变量a和b分别存放着引用0x35ce36和0x757aef。

如果使用了下列赋值语句(a和b的类型必须相同)a=b;那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同。

  数组的遍历

  基于循环语句的遍历,语法格式如下:

  for(声明循环变量:数组的名字) {

  … …

  }

  其中,声明的循环变量的类型必须和数组的类型相同。

  可以将这种形式的for语句中翻译成“对于循环变量依次取数组的每一个元素的值”。

  示例:

  public class Demo11{

  public static void main(String args[]){

  int a[] = {1,2,3,4}; /*创建一个int类型的数组

  System.out.println("数组元素的个数:"+a.length);

  System.out.println("a[1]:"+a[1]); /*通过下标来访问具体的数组元素

  for(int i=0;i<a.length;i++){ /*执行完后,会把数组中每个元素都遍历到

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

  }

  }

  }

  测试数组

遍历

原文链接:http://www.maiziedu.com/wiki/java/array/

时间: 2024-08-01 22:42:45

Java数组详解的相关文章

【Java学习笔记之五】java数组详解

数组 概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; 示例:int[] arr = new int[5]; 格式2: 元素类型[] 数组名 = new 元素类型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7}; 如果需要存储大量的数据,例如如果需要读取100个数,

“全栈2019”Java第二十八章:数组详解(上篇)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第二十八章:数组详解(上篇) 下一章 "全栈2019"Java第二十九章:数组详解(中篇) 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组"

“全栈2019”Java第三十章:数组详解(下篇)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第三十章:数组详解(下篇) 下一章 "全栈2019"Java第三十一章:二维数组和多维数组详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&qu

“全栈2019”Java第三十一章:二维数组和多维数组详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第三十一章:二维数组和多维数组详解 下一章 "全栈2019"Java第三十二章:增强for循环Foreach语法 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Ja

Java synchronized详解

Java synchronized详解 第一篇: 使用synchronized 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题.在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用.我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款.取款操作的. 在程序中我们使用了一个简化版本的Account类,代表了一个银行账户的信息.在主程序中我们首先生成了1000个线程,然后启动它们

Java堆栈详解 .

1. Java中堆栈(stack)和堆(heap) (1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不 允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的

Java网络详解

Java网络详解 Java网络基本概念 网络基础知识 1.计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议 2.网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上

java反射详解 (转至 http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html)

本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案例1]通过一个对象获得完整的包名和类名 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package Reflect; /**  * 通过一个对象获得完整的包名和类名  * */ class Demo{     //other codes... } class hello{     pu

java关键字详解

Java关键字及其作用 目录 Java关键字及其作用--- 1 一.     关键字总览:2 二.     详细解释--- 3 1.访问控制--- 3 1)私有的-- 3      private 2)受保护的-- 3      protected 3)公共的-- 3      public 2.类.方法和变量修饰符--- 3 1)声明抽象-- 3      abstract 2)类-- 4      class 3)继承.扩展-- 4      extends 4)最终.不可改变-- 4