一、一维数组和二维数组

这是一个一维数组, 里面的每一个元素,都是一个基本类型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. 【Pod Terminating原因追踪系列之一】containerd中被漏掉的runc错误信息

    前一段时间发现有一些containerd集群出现了Pod卡在Terminating的问题,经过一系列的排查发现是containerd对底层异常处理的问题.最后虽然通过一个短小的PR修复了这个bug,但 ...

  2. qqmini

    QQ玩一玩最新调试方法 https://blog.csdn.net/zyw_java/article/details/83686645 LayaBox 接入QQ玩一玩 轻游戏流程 https://bl ...

  3. 1. Error running ...: No jdk for module ... 2.

    一.错误 Error running ...: No jdk for module ... Error running ...: No jdk for module ... 二.解决方法 找到File ...

  4. css动画实现吃豆豆

    话不多说,直接上代码:(作为一个初学者写的代码,多么0基础都能看的懂吧.) HTML部分 <!DOCTYPE html> <html lang=en> <head> ...

  5. 12_进程,线程,协程,IO多路复用的区别

    1.进程 1.进程可以使用计算机多核 2.进程是资源分配的单位 3.进程的创建要比线程消耗更多的资源效率很低 4.进程空间独立,数据安全性跟好操作有专门的进程间通信方式 5.一个进程可以包含多个线程, ...

  6. 20190923-10Linux进程线程类 000 018

    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. ps 查看当前系统进程状态 ps:process status 进程状态 1.基本语法 ps ...

  7. jmeter服务器监控磁盘IO、网络-PerfMon Metrics Collector

    1.jmeetr客户端安装jp@gc - PerfMon Metrics Collector 先安装jmeter-plugins 启动jmeter ——> 客户端选项 ——> jmeter ...

  8. selenium常用webdriver api汇总

    1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_source:用于获取页面html源代码 4.dr ...

  9. 【GDKOI2004】汉诺塔

    题目描述 古老的汉诺塔问题是这样的:用最少的步数将N个半径互不相等的圆盘从1号柱利用2号柱全部移动到3号柱,在移动的过程中小盘要始终在大盘的上面. 现在再加上一个条件:不允许直接把盘从1号柱移动到3号 ...

  10. C enum(枚举)

    C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读. 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……}; 接下来我们举个例子,比如:一星期有 ...