一、一维数组和二维数组

这是一个一维数组, 里面的每一个元素,都是一个基本类型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. 轻轻松松学CSS:float

    float属性,会使元素向左或向右移动,其周围的元素也会重新排列.float不仅自己飘忽不定,还对周围元素有影响,这种影响力不容小觑.他捉摸不定(浮动规律不好把握),他干涉他国内政(对周围元素有影响) ...

  2. php利用快递100接口获取物流信息

    PHP使用CURL调用快递100接口查询运单信息 类代码如下: <?php/** * 快递100接口调用类 * @author 齐云海 * date: 2019/05/29 */ class E ...

  3. iOS 64位静态链接库

    https://www.jianshu.com/p/486e3b737707 https://stackoverflow.com/questions/44635297/setting-an-ios-s ...

  4. 【平台开发】— 8.前端-从[项目管理]来看vue

    现在要来实现[项目管理]这个功能了. 想象一下页面,元素大概就是:列表页.查询框.新增按钮.编辑.mock入口按钮. 那先来实现列表和新建,也顺带着整理一下用到的vue相关指令知识. 一.后端 后端就 ...

  5. 安装cnpm设置npm淘宝镜像源

    安装cnpm npm install -g cnpm 验证npm镜像源 npm config get registry 题外话:cnpm和npm区别? cnpm其实就是在npm的基础上将镜像源更换到国 ...

  6. Redis Sentinel结构 及相关文档

    Redis Sentinel是一个用来监控redis集群中节点的状态,不用来存储数据.当集群中的某个节点有故障时,可以自动的进行故障转移的操作.通常为了保证sentinel的高可用,sentinel也 ...

  7. vue父子组件状态同步的最佳方式

    哈喽!大家好!我是木瓜太香,一位老牌儿前端工程师,平时我们在使用 vue 开发的时候,可能会遇到需要父组件与子组件某个状态需要同步的情况,通常这个是因为我们封装组件的时候有一个相同的状态外面要用,里面 ...

  8. 3896. 【NOIP2014模拟10.26】战争游戏

    鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...

  9. 【小程序】---- 使用 Echarts 的方式

    1.下载 GitHub 上的 ecomfe/echarts-for-weixin 项目,Echarts微信版. 地址:https://github.com/ecomfe/echarts-for-wei ...

  10. Charles抓包工具的用途及应用

    Charles抓包工具的用途: 排查问题,测试异常情况 注意:Charles不能直接抓https请求的包,需要用https://www.jianshu.com/p/ec0a38d9a8cf这个方法去配 ...