一、一维数组和二维数组

这是一个一维数组, 里面的每一个元素,都是一个基本类型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. 深入理解C++中的new/delete和malloc/free动态内存管理

    malloc/free和new/delete的区别 malloc/free是C/C++标准库的函数:new/delete是C++操作符. malloc/free只是动态分配内存空间/释放空间:new/ ...

  2. 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  3. LuaBridge相关

    http://www.cppblog.com/sunicdavy/archive/2013/12/07/204648.html https://segmentfault.com/a/119000000 ...

  4. 用 Spring Boot 和 MybatisPlus 快速构建项目

    自动生成 public class MPGenerator { public static void main(String[] args) { AutoGenerator autoGenerator ...

  5. Nginx之https配置

    14.1. 对称加密 安全隐患:钥匙除我之外,还有多个人拥有.泄露风险较大,钥匙传递的过程风险较大 14.2. 非对称加密 优缺点:私钥很安全.但是非对称算法开销很大,大批量应用于业务,会导致性能成本 ...

  6. 单应用模式 - Layuiadmin单页版放入TP6.0的部署方案

    thinkphp6.0.3单应用模式.layuiadmin1.4.0单页版,不需要tp的视图驱动 1. 复制 src.start 两个文件夹 2. 粘贴到 thinkphp 的 public 目录下 ...

  7. python基础:用yagmail模块发邮件

    一.yagmail模块安装 网上下载的yagmail模块安装以后,在使用过程中,如果附件有中文,会显示乱码. pip install yagmail-0.10.212-py2.py3-none-any ...

  8. get、post请求方式在jmeter中使用步骤

    jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...

  9. 恭喜!Apache Hudi社区新晋多位Committer

    1. 介绍 经过Apache Hudi项目委员会讨论及投票,向Udit Mehrotra.Gary Li.Raymond Xu.Pratyaksh Sharma 4人发出Committer邀请,4人均 ...

  10. JVM--垃圾回收GC篇

    Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收. Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于 ...