Java语言中的数组是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
Java数组部分。
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数组的定义和类型
数组是类型相同的元素的集合。也就是说,一个数组中所保存的数据都是一个类型的。首先,记住一句话:Java中的数组是引用类型。也就是说,即使一个数组中存的都是int数据,这个数组的类型也是引用类型。
2、Java数组的声明:
假设要声明一个int型数组,可以有两种声明方式:
int[] x; int y[];
假设要声明一个Course类型数组,可以有两种声明方式:
Course[] courses1; Course courses2[];
可见,Java语言中声明数组有两种方式,一种是[]放在数组元素类型后,一种是[]放到数组引用名字后。建议使用***种方式,即int[],Course[]。因为数组本身是一种数据类型,也就是说,从现在开始,看待int[],Course[],就应该当作一个类型看待,如同看待String一样。
3、Java数组的初始化:
数组可以使用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、Java多维数组
例如二维数组的声明,和初始化过程:
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、Java数组的长度
数组的长度都在初始化时被指定,一旦指定,再也不能改变,也就是说,数组的长度是不可变的。
如:
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]); }
方法二:增强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的变化范围较大,就无法确定数组的长度。
关于Java语言中的数组是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。