快速业务通道

Java语言入门教程(十一):Java语言中的数组 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Java语言入门教程(十一):Java语言中的数组

时间:2011-06-13 csdn博客 taomoon719

在教程(十)中,我们学习了Java类之间常见的两种关系,即关联和依赖。 如果A关联或依赖B,如果仅从A到B这个方向看,从数量上,可能有1对1和1对多 两种可能。面向对象的应用,都是映射现实世界的对象以及对象之间的关系的, 仔细考察一下我们身边的情况,对象与对象之间如果存在关联或依赖,其实1对 多的关系更为常见。如,一个部门有多个员工,一个学员有多个院系,一个人有 多张毕业证书…

上篇文章中的例子,学生只能选择一门免费课程学习,如果培训中心加大优 惠力度,每个学生最多可以选择3门课程学习,应该如何维护这种关系哪?

我们可能这样尝试:

package com.csst.relation;
public class Student {
       private String name;
       //注意此处修改
       private Course course1,course2,course3;
       public Student(String name) {
              super();
              this.name = name;
       }
//TBD
}

但是,接下来,完善chooseCourse,getCourse方法,我们将面临困难。如何 得知目前已经选择了几门课程?如何能一次性将学员已经选择的课程查询出来?

也就是说,当关联或依赖关系中,出现了1对多的数量关系时,我们必须找一 种特殊的对象来帮忙,这种对象能够将我们需要管理的对象包装起来,作为一种 数据容器使用,让我们能很容易的把一些对象装进去,很容易的再取出来。数组 就是一种解决办法。在本文中,将介绍Java语言中数组的使用。

1、数组的定义和类型

数组是类型相同的元素的集合。也就是说,一个数组中所保存的数据都是一 个类型的。首先,记住一句话:Java中的数组是引用类型。也就是说,即使一个 数组中存的都是int数据,这个数组的类型也是引用类型。

2、数组的声明:

假设要声明一个int型数组,可以有两种声明方式:

int[] x;

int y[];

假设要声明一个Course类型数组,可以有两种声明方式:

Course[] courses1;

Course courses2[];

可见,Java语言中声明数组有两种方式,一种是[]放在数组元素类型后,一 种是[]放到数组引用名字后。建议使用第一种方式,即int[],Course[]。因为数 组本身是一种数据类型,也就是说,从现在开始,看待int[],Course[],就应该 当作一个类型看待,如同看待String一样。

Java语言入门教程(十一):Java语言中的数组(2)

时间:2011-06-13 csdn博客 taomoon719

3、数组的初始化:

数组可以使用new关键字初始化,使用new初始化时,必须在[]内指定数组的 长度。

int[] x=new int[3];

Course[] courses1=new Course[2];

使用new初始化数组后,数组内元素会被赋予默认值,如x中的元素均为0, courses1中的元素均为null。

如果在声明的同时,即赋予初值,可以有如下两种方式:

Int[] y ={12,23,45};

Course courses2=new Course[]{new Course(),new Course()};

赋值后,数组y是一个长度为3的数组,courses2是一个长度为2的数组。

4、多维数组

例如二维数组的声明,和初始化过程:

double[][] d=new double[3][]; d[0]=new double[4]; d[1]=new double[5]; d[2]=new double[3]; d[0][0]=10; d[0][1]=100; //...

以上代码,创建了一个二维数组,该数组包含3个一维数组,这3个一维数组 长度分别为4,5,3。按照这样的语法和逻辑,还可以声明三维,四维等多维数组 。

5、 数组的长度

数组的长度都在初始化时被指定,一旦指定,再也不能改变,也就是说,数 组的长度是不可变的。

如:

int[] x=new int[3];

System.out.println(x.length);//输出3

注意,数组的长度使用length属性取出,而不是length()方法。

6、 对数组的遍历方法

方法一:使用长度控制循环

int[] x=new int[3];
for(int i=0;i<x.length;i++){
               System.out.println(x[0]);
        }

Java语言入门教程(十一):Java语言中的数组(3)

时间:2011-06-13 csdn博客 taomoon719

方法二:增强for循环

int[] x=new int[3];
for(int a:x){
               System.out.println(a);
        }

接下来,对于上面学员选择免费课程的程序进行修改。

package com.csst.relation;
public class Student {
       private String name;
       //1.关联关系:Student关联Course(1对多关系)
       private Course[] courses=new Course[3];
       private int index;
       public Student(String name) {
              super();
              this.name = name;
       }
       //2.依赖关系:Student依赖Course
       public void chooseCourse(Course course){
              if(index<3){
                     this.courses[index]=course;
                     index++;
              }else{
                     System.out.println("最多选3门课程。");
              }
       }
       public Course[] getCourse(){
              return this.courses;
       }
}

在处理1对多关系时,数组是常用的解决方案。数组的优点是遍历比较容易, 缺点是长度一旦确定,就无法改变。如果对象间的1:n关系,n的变化范围较大, 就无法确定数组的长度。与数组类似,比数组更为灵活的解决方案,是集合,在 以后的文章中会介绍。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号