Java技术文章伪程序员技术文

【精致Java教程】22:数组(一)

2015-06-03  本文已影响766人  许宏川

如果程序里你需要同时存储多个同一类型的值怎么办呢?例如如果你们班有50个同学要你存储全班同学的名字怎么办?像下面这样吗?

String stuName1 = "张辽";
String stuName2 = "典韦";
String stuName3 = "许褚";
String stuName4 = "徐晃";
...
...
String stuName49 = "于禁";
String stuName50 = "乐进";

这么做简直是个灾难,变量巨多,代码巨长还巨难管理。
为了解决这种问题,于是呢,就有了数组。


什么是数组##

数组是一种用于存储多个同类型变量的数据结构,是一种线性结构,属于引用数据类型。数组的每一个数据称为<code>元素</code>,每个元素都有对应的索引(称为<code>下标</code>)用于访问该元素。
数组有两大属性:

怎么使用数组##

声明一个数组有以下两种方式

数组的初始化也有两种方式

如何访问数组元素##

上面说了,数组中的每个元素分配了索引可以访问,这个索引称之为下标。下标写在[]里。例如<code>scroes[5]</code>将访问该数组的第6个元素,咦,为什么是第6个不是第5个呢?因为数组的元素下标是从0开始算的,所以如果一个数组的长度为50,那么它元素的下标是从0到49。

遍历数组##

数组的<code>length</code>属性可以获取该数组的长度。基于这个属性就可以用循环来遍历一个数组了。

示例代码:

int[] scroes = new int[50];
for (int i = 0; i < scroes.length; i++) {
    scroes[i] = i + 1;
}
//System.out.println(scroes[49]); // 因为数组下标从0开始,所有长度为50的数组的最后一个元素的下标是49

运行结果:

<pre>
50
</pre>

上面的代码用动态初始化创建了一个长度为50的int数组,然后利用length属性遍历数组并把1大50赋值给每个元素,最后输出最后一个元素的值。
不知道这时你会不会好奇,如果下标超出数组长度会怎样呢?试试访问第51个元素吧。

scroes[50] = 51;

运行结果:
<pre>
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 50
at Array.main(Array.java:11)
</pre>

运行结果出错了,抛出了ArrayIndexOutOfBoundsException(数组越界)的异常。

foreach##

Java提供了一种循环语法可以很方便的用来遍历数组和集合(以后会学到)。可以看成是用for循环遍历数组/集合的简写版本。
其语法如下:
<code>
for (数据类型 变量名: 遍历对象) {
此处可以引用变量名遍历整个数组/集合的每个元素;
}
</code>

示例代码:

for (int i : scroes) {
    if (i % 5 == 0) {
        System.out.println(i);
    }
}

运行结果:
<pre>
5
10
15
20
25
30
35
40
45
50
</pre>

本文代码下载:百度网盘

上一篇 下一篇

猜你喜欢

热点阅读