Java对象数组
来自CloudWiki
目录
普通一维数组
前面的学习中,我们学习了普通一维数组,如下所示。
public class TestArray { public static void main(String[] args) { // 数组大小 int size = 5; // 第1种方法 double[] myList = new double[size]; myList[0] = 1; myList[1] = 2; myList[2] = 3; myList[3] = 4; myList[4] = 5; } }
声明和创建对象数组
在我们学了类和对象之后,其实对象也可以创建数组,我们将它称作对象数组。
声明和创建对象数组的语法与基本类型值数组创建语法相同,例如:
Book[] books=new Book[5];
该语句创建了一个存储5个Book类型数据的数组,如图4-5所示。
注意:当使用new操作符创建对象数组后,这个数组中每个元素都是默认值为null的引用变量,如果程序中调用数组中的元素,会引发NullPointerException 异常。所以我们在使用数组中的元素前,需要对齐进行初始化。
对象数组初始化
数组中保存的每一个对象必须单独实例化,存储如图4-6所示。 代码为: 例子:
public class TestArray { public static void main(String[] args) { // 数组大小 int size = 5; / Book[] books=new Book[size]; books[0]=new Book("01","think in java","Bruce Eckel",50,"工具类",50.0f); books[1]=new Book("02","JAVA核心技术","Cay S.Horstmann",40,"工具类",50.0f); books[2]=new Book("03","射雕英雄传","金庸",30,"文学类",,50.0f); books[3]=new Book("04","平凡的世界","路遥",20,"文学类",50.0f); books[4]=new Book("05","心理罪","雷米",60,"文学类",50.0f); } }
应用:对象数组的遍历
下面我们以商院面馆的Noodles为例,演示一下对象数组的遍历
商院面馆
public class Store { public static void main(String[] args) { // TODO Auto-generated method stub int size=3; Noodles [] nset = new Noodles[size]; nset[0]= new Noodles("山西刀削面",105.0f,30); nset[1]= new Noodles("兰州牛肉面",15.0f,20); nset[2]= new Noodles("北京炸酱面",12.0f,30); for(int i=0;i<nset.length;i++) { System.out.println(nset[i].toString()); } } }
思考:如何查询数组中刀削面的价格
思考:如何计算商品的总库存、商品的总价值
练习:商院面馆评分
商院面馆开通了餐品评分功能,假设餐品一共有5种,共有3位顾客参与评分,
请你定义一个二维数组来存储评分,并打印出每个餐品的平均得分。