Java 在游戏中探索数组二维数组

作者:桃花键神 时间:2023-07-01 10:04:04 

什么是数组

数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量/12713827)。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。 数组是用于储存多个相同类型数据的集合。

举例(装备栏)

Java 在游戏中探索数组二维数组

数组,元素和下标:

比如打王者荣耀时每个人都要出装备,每个人都有自己的装备栏。那么这个装备栏就是一个数组,里面的装备就是元素,装备放的位置就是下标。也就是说每个下标都对应一个装备,下标是从0开始的,所以第一个装备对应的下标为0

声明数组

int类型

声明数组时固定数组长度,数组的长度是不变的。 两种声明方式,第一种声明时直接赋值。第二种声明时不赋值,但固定长度,虽然没有赋值但是会默认将全部元素赋值0。


public class Test {
   public static void main(String[] args) {
       //声明int类型数组并初始化赋值
       int[] a={1,2,3,4,5,};
       //声明数组设值数组长度,并初始化全为0
       int[] b=new int[10];
   }
}

String类型

这里与上面没什么区别也是两种声明方法。


public class Test {
   public static void main(String[] args) {
       //声明int类型数组并初始化赋值
       int[] a={1,2,3,4,5,};
       //声明数组设值数组长度,并初始化全为0
       int[] b=new int[10];
       //声明String类型数组并初始化赋值
       String[] d={"aa","bb","cc"};
       //声明数组固定长度,默认初始化全为0
       String[] c=new String[10];
   }
}

数组操作

遍历数组

遍历数组: 两种方法,for循环和for in 循环

for循环,这里我在数组中放了三个元素,也就是装备。循环输出,从下标为0的开始输出. zb.length 是这个数组的大小


public class Test {
   public static void main(String[] args) {
      String[] zb={"冷静之靴","泣血之刃","名刀司命"};
       for (int i = 0; i < zb.length; i++) {
           System.out.println(zb[i]);
       }
   }
}

结果:

Java 在游戏中探索数组二维数组

for in循环,忘了这个循环怎么用的可以参考上一篇文章,金丹篇有详细介绍。


public class Test {
   public static void main(String[] args) {
      String[] zb={"冷静之靴","泣血之刃","名刀司命"};
       for (String s : zb) {
           System.out.println(s);
       }
   }
}

二维数组

二维数组本质上是以数组作为数组元素的数组,即&ldquo;数组的数组&rdquo;,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

二维数组就是一个普通一维数组中每个元素都是一个一维数组,组合起来就是二维数组。

Java 在游戏中探索数组二维数组

继续用之前的例子。每局游戏开始,一方的数据面板有个默认排序(显示装备,经济的那个面板)。每个人有一个装备栏,相当于是一个数组。那么信息面板上有五个装备栏(一方队伍),并且按默认顺序排列,也相当于一个数组。一个装备栏算一个元素,装备栏的位置就是下标。但是这个数组中的每个元素也是一个数组,所以数据面板就相当于是一个二维数组。

声明二维数组

声明二维数组的方法和声明数组没什么区别还是两种情况


public class Test {
   public static void main(String[] args) {
       //声明二维数组并赋值
       int[][] a={{123},{456},{789}};
       //声明二维数组固定大小
       int[][] ns = new int[3][5];
   }
}

上面用王者荣耀介绍二维数组可能有些读者还有点迷,现在把上面那个例子用代码敲出来。

这里想不起来装备啥名了,后面三个人的装备我直接 复制了


public class Test {
   public static void main(String[] args) {
         //五个人,每个人装备栏有三个装备。
       String[][] wzry=new String[5][3];
       //给第一个人买装备,就是给第一个数组赋值
       wzry[0][0]="宝石";
       wzry[0][1]="血刀";
       wzry[0][2]="金身";
       //给第二个人买装备,就是给第二个数组赋值
       wzry[1][0]="铁剑";
       wzry[1][1]="草鞋";
       wzry[1][2]="护甲";
       //给第三个人买装备,就是给第三个数组赋值
       wzry[2][0]="宝石";
       wzry[2][1]="血刀";
       wzry[2][2]="金身";
       //给第四个人买装备,就是给第四个数组赋值
       wzry[3][0]="宝石";
       wzry[3][1]="血刀";
       wzry[3][2]="金身";
       //给第五个人买装备,就是给第五个数组赋值
       wzry[4][0]="宝石";
       wzry[4][1]="血刀";
       wzry[4][2]="金身";
   }
}

现在来运行一下看看每个人的装备都有啥


//第三个人的第二个装备
       System.out.println("第三个人的第二个装备");
       System.out.println(wzry[2][1]);
       //第一个人的第三个装备
       System.out.println("第一个人的第三个装备");
       System.out.println(wzry[0][2]);
       //第五个人的全部装备
       System.out.println("第五个人的全部装备");
       for (int i = 0; i < 3; i++) {
           System.out.println(wzry[4][i]);
       }

结果:

Java 在游戏中探索数组二维数组

来源:https://blog.csdn.net/weixin_50843918/article/details/123294158

标签:Java,数组,二维
0
投稿

猜你喜欢

  • 基于SpringBoot+Redis实现分布式锁

    2023-10-16 11:44:31
  • 详解SpringMVC如何进行数据回显

    2023-09-12 08:48:15
  • C#模板方法模式(Template Method Pattern)实例教程

    2022-09-12 02:59:23
  • Unity时间戳的使用方法

    2023-11-11 05:19:00
  • Android 动画之RotateAnimation应用详解

    2022-08-17 17:03:07
  • 浅谈Java list.remove( )方法需要注意的两个坑

    2023-02-01 06:08:44
  • 深入探讨Linux静态库与动态库的详解(一看就懂)

    2023-07-04 01:02:28
  • Java使用GZIP压缩导致HTTP请求返回乱码问题解决

    2022-04-12 07:31:09
  • C#中ExecuteNonQuery()返回值注意点分析

    2023-04-05 03:40:14
  • Android实现美团外卖底部导航栏动画

    2022-09-21 20:09:13
  • Android Mms之:联系人管理的应用分析

    2022-12-23 20:11:24
  • MyBatisPlus 自定义sql语句的实现

    2021-11-11 07:51:20
  • Java Swing null绝对布局的实现示例

    2021-07-27 06:07:18
  • Jsoup解析html实现招聘信息查询功能

    2022-01-08 19:38:07
  • C# 获取系统进程的用户名

    2022-12-06 02:38:03
  • 一篇文章带你了解Java SpringMVC返回null

    2023-11-24 15:18:03
  • springboot集成shiro详细总结

    2022-07-12 14:56:17
  • 解决idea中yml文件图标问题及自动提示失效的情况

    2021-06-08 14:59:42
  • Android延迟实现的几种解决方法及原理分析

    2023-10-24 18:07:15
  • 深入理解Java设计模式之桥接模式

    2022-04-11 07:34:53
  • asp之家 软件编程 m.aspxhome.com