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};

使用数组

由于数组的元素类型和数组大小都是确定的,所以使用数组时可以直接使用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();
} } }

最新文章

  1. PHP环境配置-从Apache官网下载windows版apache服务器
  2. Freemarker与Springmvc
  3. 【Alpha版本】十天冲刺——日志集合贴
  4. Learning ROS for Robotics Programming - Second Edition(《学习ROS机器人编程-第二版》)
  5. .Net加密保护工具分析介绍
  6. BZOJ2432 [Noi2011]兔农
  7. [HTML] CSS3 边框
  8. [转]使用maven镜像
  9. 如何在ubuntu下安装合适的翻译词典
  10. Passbook教程中生成pass时遇到的“Couldn&#39;t find a passTypeIdentifier in the pass”
  11. iOS界面调试工具 Reveal-备用
  12. City Game(动态规划)
  13. 算法战斗:给定一个号码与通配符问号W,问号代表一个随机数字。 给定的整数,得到X,和W它具有相同的长度。 问:多少整数协议W的形式和的比率X大?
  14. OpenGL+VS2013+WIN7(64)组态
  15. hdu_4787_GRE Words Revenge(在线AC自动机)
  16. codevs1051
  17. 面向面试编程代码片段之GC
  18. 【CF711D】Directed Roads
  19. 【java多线程】线程状态分析
  20. ckplayer iis6 mp4 播放404错误

热门文章

  1. JavaSE_11_File类、递归
  2. JS 作用域、原型链
  3. Java笔记 - 输入输出流
  4. Docker系列(十):Kubernetes集群入门
  5. 使用Eclipse的Working Set管理项目
  6. 解决pycharm安装python库报错问题
  7. 跟我一起了解koa之koa的cookie(三)
  8. 【核心核心】5.Spring【DI】注解方式
  9. Extjs 疑难杂症 (LoadMark 遮罩、Panel Update无效、chrome浏览器date控件全屏)
  10. PAT甲级——A1014 Waiting in Line