基础篇-1.5Java的数组
1 引言
每一种编程语言都有其自身的数组概念,大同小异,都是为了存储一堆数据,而java的数组是用来存储相同类型的数据,如声明一个arr[10]数组,可以用来代替声明10个变量。
2 声明和创建数组
在使用数组之前,必须得声明和创建数组,下面看下如何声明和创建数组。
声明数组
datatype[] array; // 首选的方法
或
datatype array[]; // 效果相同,但不是首选方法,为了让c或c++程序员能够更快速地了解java
示例:
int[] array; 或 int array[];
创建数组
方法一:
array = new datatype[arraysize];
创建类型为datatype,数量为arraysize的数组,并赋值给array变量。
示例:array = new int[10];
方法二:
array = {value0, value1, value2 ... valuek};
直接创建数组并给数组中的各个元素赋值value0,value1,value2...valuek。
示例:array = {10, 20, 30, 40, 50};
说明:
array[0] -> 10
array[1] -> 20
array[2] -> 30
array[3] -> 40
array[4] -> 50
数组是通过数组索引来访问的,从0到arraysize-1,如array[0]到array[arraysize-1]。
我们可以直接通过如下方式,声明和创建数组:
int[] array = new int[10]; // 当然也可以如下这三种方法 int array[] = new int[10]; int array[] = {10, 20, 30}; int[] array = {10, 20, 30};
3 使用数组
由于数组的元素类型和数组大小都是确定的,所以使用数组时可以直接使用for循环或者增强型for循环。
public class mylist { public static void main(string[] args) { int[] mylist = { 2, 3, 4, 5, 6, 7, 8 }; // 普通的for循环 for (int i = 0; i < mylist.length; i++) { system.out.println(mylist[i]); } system.out.println("------------------------黄金分割线--------------------------"); // 增强型for循环 for (int item : mylist) { system.out.println(item); } } }
4 多维数组
多维数组可以看做是数组的数组,例如二维数组就是一个特殊的一维数组,二维数组中的每一个元素都是一个一维数组。
例如 int[][] list = {{2, 3, 4}, {12, 13, 14}}; 就是一个 new int[2][3] 的二维数组,创建两个长度为3的一维数组。
下面来看个实例:
public class myfirst { public static void main(string[] args) { int isize = 2; int jsize = 5; // 二维数组的声明,并且创建二维数组和赋值 int[][] arrlist = new int[2][5]; // 赋值并打印出二维数组中的每一个值 for(int i=0; i<isize; i++) { for(int j=0; j<jsize; j++) { // 通过math.random()创建随机小数,乘于10并且转为整型,则表示获取0到9的随机整数 arrlist[i][j] = new double(math.random() * 10).intvalue(); system.out.println("数组元素arrlist[" + i + "][" + j + "]值为:" + arrlist[i][j]); } } // 计算二维数组的所有值的总和 int sum = 0; for(int i=0; i<isize; i++) { for(int j=0; j<jsize; j++) { sum += arrlist[i][j]; } } system.out.println("sum:" + sum); // 比较出二维数组中的最大值 int max = arrlist[0][0]; for(int i=0; i<isize; i++) { for(int j=0; j<jsize; j++) { if (max < arrlist[i][j]) { max = arrlist[i][j]; } } } system.out.println("max:" + max); } }
5 练习
通过for循环将九九乘法表打印出来,并将九九乘法表得出的各个结果保存到一个二维数组中。
在本次练习中,我们需要学会怎么去分析问题,怎么去把一个大问题划分为多个小问题,然后再逐个击破。这是我们以后开发项目时最基本的思维方式。在这里,我们或许还需要另外一种思维方式,以结果为导向的思维方式。
结果展示:
思路:
1.首先我们得想象一下最终打印出来的九九乘法表模样,或者说是构造,即以结果为导向的思维方式。
2.需要以一个二维数组来存储,那么这个二维数组的大小肯定就已经确定了是 new int[9][9] 。
3.这里一共有九行九列数据,故我们可以用一个长度为9的大循环包裹表示9行,在大循环中再用一个小循环表示一行中的每一列。
4.经过观察,我们还可以发现每一行中的列数都不同,故我们需要每完成一行的循环后,令列数加一。
代码如下:
public class mylist { public static void main(string[] args) { int minval = 1; int maxval = 9; int size = 9; int[][] list = new int[size][size]; // 每一行的大循环 for (int i=minval; i<=maxval; i++) { // 一行中每一列的小循环 for(int j=1; j<=i; j++) { list[j-1][i-1] = j*i; system.out.print(j + "*" + i + "=" + list[j-1][i-1] + " "); } system.out.println(); } } }
上一篇: 手写迷你SpringMVC框架
下一篇: jQuery 的自定义事件