数组
阅读:177在软件开发中,数据结构和算法是很重要的。如果你是计算机专业出身的,数据结构和算法,肯定是必学的一门课程的。
今天,学习的数组,就是一种重要的数据结构,用来存储同一种类型的集合。
1.数组定义
有如下方式:
- int[] i;
- int i[];
大多数程序员喜欢第一种方式,因为类型和变量分开了。但是,上面只是声明了数组,i只是个变量,并没有初始化真正的数组。我们使用如下方式初始化:
int[] i = new int[100];
int[] j = {1,2,3,4};
int[] j = new int[] {1, 2, 3, 4}
数组的下标是从0开始,1中下标从0-99。
对于1创建了一个空数组,所有的元素初始化为0。boolean初始化为false,如果是个对象,比如String数组,初始化为特殊值null。
那怎么访问数组呢?
对于2,我们访问第二个元素,通过j[1],结果为2.
为数组赋值:
比如对i第一个值赋值为3,通过i[0] = 3;
如果访问的下标超过了数组的范围,会出现什么问题?
会报数组越界异常。
注意:
数组一旦创建,大小就不能改变。
Java允许创建长度为0的数组,这个是非常有用的设计,不是null,在遍历和使用数组时不会报空指针异常。
2.遍历数组
for循环,while循环都可以遍历数组。这里以for循环举例,定义一个数组,计算数组所有值的和,代码如下:
public class ArrTest {
public static void main(String[] args) {
int[] j = {1, 2, 3, 4};
int ret = 0;
for (int i = 0; i < j.length; i++) {
ret += j[i];
}
System.out.println(ret);
}
}
输出结果为:10。
之前讲过,在JDK5,提供了增强的for循环,那我们用增强for循环,代码如下:
public class ArrTest {
public static void main(String[] args) {
int[] j = {1, 2, 3, 4};
int ret = 0;
for (int i : j) {
ret += i;
}
System.out.println(ret);
}
}
增强for循环,更加简洁,不需要使用下标。但是如果你需要使用下标,增强for循环可能就不能满足需求。
3.多维数组
多维数组使用多个下标访问元素,适合更复杂的结构。比如我们定义一个二维数组,代表不同班级的学生,遍历并打印出来,代码如下:
public class ArrsTest {
public static void main(String[] args) {
String[][] students = new String[][]{
{"zs", "ls"},
{"ww", "zl"}
};
for (int i = 0; i < students.length; i++) {
for (int j = 0; j < students[i].length; j++) {
System.out.println(students[i][j]);
}
}
}
}
打印结果如下:
zs
ls
ww
zl
注意:实际上Java没有多维数组,只有一维数组,多维数组是"数组的数组"组合而成的。
最后,请实现冒泡和选择排序。
© 版权归知否网(zhifou.net)所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权知否网将依法追究其法律责任。
读后有收获,请作者喝杯咖啡
