你没见过的Java入门,使用中文例程的教程之九:数据排排站-数组

第四讲里, 已经用过了"参数"这个字符串数组. 下面我们用数组给人排队:

你没见过的Java入门,使用中文例程的教程之九:数据排排站-数组

"人"是单个的人, 多加一对方括号"人[]"就成了一队人(再加一对[]呢?). "一队"是个长度为4的数组. 它的length属性就是它的长度. 在它初始化时, 长度就已经确定了,而且之后不能修改. 之前我们用过"参数[0]"获得"参数"数组的第一个值. 同样在这里可以用从0到(一队.length-1)的变量"序号"来获取数组里的每个值.

注意: 数组的序号是从0开始的, 这是比Java年纪还大的一个老传统, 再配合一下吧.

数组还有另一种初始化方法:

 人[] 二队 = new 人[10];
 二队[0] = new 人("阿狗", 11);
 二队[1] = new 人("阿猫", 10);
 // 2空着
 二队[3] = new 人("阿猪", 9);

很直白, 一开始是初始化一个长度是10的数组, 之后就是往数组中的指定位置放个体.

如果对二队按照一队的方式来"报数", 会报错NullPointerException,因为位置2还空着. 这时需要加个"不为空"的判断条件:

 for (int 序号 = 0; 序号 < 二队.length; 序号++) {
 if (二队[序号] != null) {
 二队[序号].自我介绍();
 }
 }

排了队, 下面就试试按照某个属性排序. 比如要按年龄对一队排序. 大略的思路可能是: 比较相邻的两人年纪,谁小就排在前面. 下面是Java对应这种思路的一种程序:

 java.util.Arrays.sort(一队, new java.util.Comparator<人>() {
 @Override
 public int compare(人 甲, 人 乙) {
 return 甲.年龄 - 乙.年龄;
 }
 });

Arrays和Comparator都是java.util包里的类. 如果嫌这样不美观可以在程序前import这两个类.

如果想要排个方阵呢? 只要再加一对[]就可以了:

人[][] 方阵 = new 方阵[10][15];
方阵[0][0] = new 人("阿狗",3);
方阵[2][4] = new 人("阿猫",4);

还有5️⃣节,稍安勿躁。

展开阅读全文

页面更新:2024-05-20

标签:数组   方括号   方阵   直白   一下吧   初始化   字符串   中文   序号   长度   属性   例程   入门   思路   年纪   年龄   参数   程序   教程   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top