Java课程-----数组

Java课程-----一维数组

数组是Java语言中的一种引用数据类型,它是一组相同类型的数据的有序集合。适用于集中管理类型相同、用途相近的多个数据。

数组中的每一个数据被称为数组元素

Java的数组要求所有数组元素具有相同的数据类型。(可以是基本数据类型,也可是引用数据类型) 

一旦数组的初始化完成,数组在内存中所占的存储空间将被固定下来,因此数组的长度不可改变。

通过数组元素的索引号(或者说是下角标)来访问数组元素。 

一维数组

数组的维数可以理解为一个数组中数据组合的层次数,只有一个层次的数据组合而成的数组被称为一维数组。

      一维数组的结构:10int型数据组成一维数组s

数组的长度:S数组中的元素个数

      数组元素的访问:数组名[元素下标]

一维数组的声明

格式:类型名(任意合法的Java数据类型 

) 变量名[];   或   类型名[] []标明声明的是一维数组

) 变量名(合法的Java语言标识符);

例如,int[] arr;           double salary[];     

          String[] args;   Student  s[];  

声明了数组类型变量,运行时系统只为引用变量分配引用空间,并没有创建对象,也不会为数组元素分配空间,因此尚不能使用任何数组元素。

声明数组类型变量时不允许指定数组的长度:
int[3] a;   ×  

数组对象的创建和使用

Java语言中通常使用关键字new创建数组对象,其语法格式为:new  类型名[n]

例如,int [] arr; 

           arr=new int[3(数组的长度)];    

访问数组元素的格式:数组名[元素下标(使用方法等同于同类型的变量

例如,arr[0]=55;  arr[1]=78;   arr[2=arr[0]+arr[1];

注意:在访问数组元素时合法的下标范围是0~n-1,如果越界,程序编译时不会报错,但程序运行时会抛越界异常。

6.1 基本数据类型的一维数组的声明、创建和使用 。

int[] arr=new int[5];

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

System.out.print(arr[i](数组一经创建,元素被初始化为默认值+"\t");

6.2 引用类型的一维数组的声明、创建和使用。

Point[] p;

p=new Point[5];

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

    p[i]=new Point(ii+1);

    p[i].display();

}

数组对象的length属性

数组对象拥有一个有系统自动提供的特殊属性length(以只读的方式给出数组的长度),该属性为int类型,可直接访问,在遍历数组元素时非常有用。

例如,for(int i;i<arr.length;i++)    

注意:Java 语言中数组长度并不属于其数据类型的组成部分,一个声明为int[]类型的变量可以指向一个长度为3int[] 类型数组对象,也可以指向一个长度为5int[] 类型数组对象,例如,int[] a; a=new int[3];          a=new int[5];  p

数组的静态初始化

     如果在创建数组对象时已能确定其各元素的值,则可采用一种简化的书写方法来创建和初始化数组对象。

例如,int a[]={12936};//静态初始化

相当于:(动态初始化)

int a[]=new int[3];

a[0]=12;

a[1]=9;

a[2]=36;

例如,引用类型数组的静态初始化为:

Point[] p={ new Point(3,5),

                 new Point(-4,9),

                 new Point(2,-9),

                 new Point(-5,-2)   }; //6行代码是一条语句

注意:

int a[];

a={12936};    × 

foreach循环

      使用foreach循环遍历数组和集合元素时,无须获得数组和集合的长度,无须根据索引来访问数组元素和集合元素,系统自动遍历数组和集合的每个元素。

格式:
for(类型  变量名 数组名 集合名){
      //变量自动迭代访问每个元素...
}

注意:若数组中有n个元素,则该循环就循环n次;每一次循环都将数组中的一个元素赋给变量,循环体就对该变量进行操作。

String[] names = {"Georgianna""Jen""Simon"};

for (String name : names){

System.out.println(name);

}

注意:

使用foreach循环遍历数组元素无须获得数组长度,也无须根据索引来访问数组元素。

无须循环条件,无须循环迭代语句,这些部分都由系统来完成。

当使用foreach循环时,通常不要对循环变量进行赋值,虽然没有语法错,但极容易引起错误。

6.5 foreach循环。

String[] names = {"Georgianna""Jen""Simon"};

for (String name : names){

name="Tom";

System.out.println(name);

}

System.out.println(names[0]);

注意:当使用foreach来迭代访问数组元素时,循环变量相当于临时变量,系统会把数组元素依次赋给这个临时变量,但它并不是数组元素。改变循环变量的值,并不能改变元素的值。因此,如果希望改变数组元素的值,则不能使用这种foreach循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值