一、一维数组和二维数组

这是一个一维数组, 里面的每一个元素,都是一个基本类型int

int a[] =new
int[]{1,2,3,4,5};

这是一个二维数组,里面的每一个元素,都是一个一维数组

所以二维数组又叫数组的数组

int b[][] = new
int[][]{

{1,2,3},

{4,5,6},

{7,8,9}

};

二、初始化二维数组

public class HelloWorld {

public static
void main(String[] args) {

//初始化二维数组,

int[][] a = new
int[2][3]; //有两个一维数组,每个一维数组的长度是3

a[1][2] = 5;  //可以直接访问一维数组,因为已经分配了空间

//只分配了二维数组

int[][] b = new
int[2][]; //有两个一维数组,每个一维数组的长度暂未分配

b[0]  =new
int[3]; //必须事先分配长度,才可以访问

b[0][2] = 5;

//指定内容的同时,分配空间,没有指定有几个一维数组,也没有指定数组的长度

int[][] c = new
int[][]{

{1,2,4},

{4,5},

{6,7,8,9}

};

}

}

三、练习--二维数组

题目:

定义一个5X5的二维数组。 然后使用随机数填充该二维数组。

找出这个二维数组里,最大的那个值,并打印出其二维坐标

0-100的 随机整数的获取办法有多种,下面是参考办法之一:

(int) (Math.random() * 100)

Math.random() 会得到一个0-1之间的随机浮点数,然后乘以100,并强转为整型即可。

实现效果:

官方示例代码:

public class HelloWorld {

public static
void main(String[] args) {

int a[][] = new
int[5][5];

// 初始化这个数组

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

a[i][j] = (int) (Math.random() * 100);

}

}

// 打印这个数组的内容:

for (int[] row : a) {

for (int each : row) {

System.out.print(each + "\t");

}

System.out.println();

}

int max = -1;// 最大值

// 最大值的坐标

int target_i = -1;

int target_j = -1;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (a[i][j] > max) {

max = a[i][j];

target_i = i;

target_j = j;

}

}

}

System.out.println("找出来最大的是:" + max);

System.out.println("其坐标是[" + target_i + "][" + target_j + "]");

}

}

个人整理代码:

public class Array06 {

public static
void main(String[] args) {

TwoDimensionalArrayExercise();

}

public static
void InitializeATwoDimensionalArray(){

// 初始化二维数组

int[][] a = new
int[2][3];//意思是创建了一个有两个一维数组的二维数组,每个一维数组的长度是3

a[1][2] = 5; // 可以直接访问一维数组,因为已经分配了空间

//只分配了二维数组

int [][] b = new
int[2][];  // 有两个一维数组,每个一维数组的长度暂未分配

b[0] = new
int[3];  //必须事先对一维数组进行分配长度,才可以访问

b[0][2] = 5;

// 指定内容的同时,分配空间

int [][]  c = new
int[][]{

};

}

public static
void TwoDimensionalArrayExercise(){

int [][] a = new
int[5][5];

// 初始化这个数组

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a.length; j++) {

a[i][j] = (int)(Math.random()*100); //Math.random() 会得到一个0-1之间的随机浮点数

}

}

// 打印这个数组的元素值

for (int[] twoEach : a) {

for (int oneEach : twoEach) {

System.out.println(oneEach);

}

System.out.println("--------------------------------------------");

}

int max = -1;   //假定,初始的需要寻找的最大值为-1   (给这个不可能出现的值,方便后面寻找变换)

// 最大值的坐标

int target_i = -1;

int target_j = -1;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a.length; j++) {

if (a[i][j] > max) {

max = a[i][j];

target_i = i;

target_j = j;

}

}

}

System.out.println("找出来的二维数组最大值是:" + max);

System.out.println("该最大值的坐标是:[" + target_i + "," + target_j +"]");

}

}

Java知识系统回顾整理01基础06数组06二维数组的更多相关文章

  1. Java知识系统回顾整理01基础04操作符06三元运算符

    一.三元运算符 表达式?值1:值2 如果表达式为真 返回值1 如果表达式为假 返回值2 if语句学习链接:if语句 public class HelloWorld { public static vo ...

  2. Java知识系统回顾整理01基础03变量06变量的作用域

    一.变量根据所处的位置对应不同的名称 变量处于不同的位置,有不同的名称 名称分别是  字段,属性 参数 局部变量 不同名称的变量,其作用域是不一样的 二.字段,属性,Field 当一个变量被声明在类下 ...

  3. Java知识系统回顾整理01基础06数组07数组工具类Arrays

    一.Arrays简介 Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能. 大大提高了开发人员的工作效率. 二.Arrays提供的数组复制方法 与使用System.arraycopy ...

  4. Java知识系统回顾整理01基础06数组01创建数组

    一.数组定义 定义:数组是一个固定长度的,包含了相同类型数据的 容器 二.声明数组 int[] a; 声明了一个数组变量. []表示该变量是一个数组 int 表示数组里的每一个元素都是一个整数 a 是 ...

  5. Java知识系统回顾整理01基础01第一个程序02命令行格式编译和执行Java程序

    一.先看运行效果 在控制台下运行第一个Java程序,可以看到输出了字符串 hello world 二.准备项目目录 通常都会在e: 创建一个project目录 在这个例子里,我们用的是e:/proje ...

  6. Java知识系统回顾整理01基础06数组03排序

    一.选择法排序 选择法排序的思路: 把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 比较完后,第一位就是最小的 然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个 ...

  7. Java知识系统回顾整理01基础06数组02初始化数组

    一.分配空间与赋值分步进行 分配空间与赋值分步进行 public class HelloWorld { public static void main(String[] args) { int[] a ...

  8. Java知识系统回顾整理01基础06数组05复制数组

    数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 一.复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src, srcPos, dest, de ...

  9. Java知识系统回顾整理01基础06数组04增强型for循环

    增强型for循环在遍历一个数组的时候会更加快捷 一.增强型for循环 注:增强型for循环只能用来取值,却不能用来修改数组里的值 public class HelloWorld { public st ...

随机推荐

  1. 2020.08.23 瞎扯周记之论短暂假期(QAQ)内要不要睡午觉

    蒟蒻的假期都是很短暂的嘛 作为一只合格的蒟蒻 假期自然是很短暂的QAQ 只有短短的26h93360s(手动微笑) 总体来讲 假期只有两件事要干: 1.满足人体自身需求 2.满足作业需求 2.5.摸鱼 ...

  2. e3mall商城的归纳总结6之redis

    一.说在前面的话 前面几节我们主要对该项目的后端进行了增删改查,但是所有的数据都是存放在数据库中,这样的话数据库的压力显而易见是很大的,因此本节学习nosql的缓存,也就是redis的使用,在使用之前 ...

  3. 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 说明:本人曾经在listview嵌套gridview出现 ...

  4. USB Key

    随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用.本文对USB Key的产生和未来的发展趋势作了一个简单的介绍. 目前市场上见到 ...

  5. Unity动画优化

    Unity动画优化 https://blog.csdn.net/TracyZly/article/details/79991593 Unity中Animator做UI动画的一些细节 https://b ...

  6. C Primer Plus 学习笔记

    随笔: 1)C语言中%3d%2d什么意思? 格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式.在"%"和字母之间插进数字表示最大场 ...

  7. oracle之三RMAN概述

    RMAN概述 6.1 rman的定义和功能: 1) Recovery Manager 2)建立备份和恢复的server process,在oracle server上做备份和恢复 3)rman 备份d ...

  8. swift基本数据类型使用-数组使用

    目录 数组的使用 1.数组的定义 2.对可变数组的基本操作 3.数组的遍历 4.数组的合并 5. 示例 数组的使用 1.数组的定义 1> 定义不可变数组 2> 定义可变数组 2.对可变数组 ...

  9. VC 编译 MATLAB 的 mex 文件

    VC 编译 MATLAB 的 mex 文件mex 文件是 MATLAB 调用其他程序设计语言程序或算法的接口.在 Windows 环境中,mex 文件是扩展文件名为 DLL 的动态链接库,可以在 m ...

  10. StarUML 3.1.0 for Windows 10

    StarUML 3.1.0 for Windows 10 1.下载 StarUML 3.1.0 http://staruml.io/download 2.安装 npm 到官网下载安装 windows版 ...