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

 更新时间:2022年03月09日 16:45:36   作者:桃花键神  
数组和二维数组感觉用王者荣耀的装备栏来举例解释,应该更易懂一些。从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助

什么是数组

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

举例(装备栏)

数组,元素和下标:

比如打王者荣耀时每个人都要出装备,每个人都有自己的装备栏。那么这个装备栏就是一个数组,里面的装备就是元素,装备放的位置就是下标。也就是说每个下标都对应一个装备,下标是从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]);
        }
    }
}

结果:

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

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

二维数组

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

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

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

声明二维数组

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

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 在游戏中探索数组二维数组的文章就介绍到这了,更多相关Java 数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis-plus在项目中的简单应用

    Mybatis-plus在项目中的简单应用

    Mybatis-plus是Spring框架中OOM的一大利器,其简单易用参考官网文档即可很快上手,本文主要介绍了逻辑删除,自动填充,分页插件等的简单使用,感兴趣的可以了解一下
    2021-07-07
  • 浅析Java随机数与定时器

    浅析Java随机数与定时器

    本篇文章给大家分析了Java随机数与定时器的实现原理以及代码分享,有需要的读者参考下吧。
    2018-02-02
  • JSON--List集合转换成JSON对象详解

    JSON--List集合转换成JSON对象详解

    这篇文章主要介绍了List集合转换成JSON对象,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    2017-01-01
  • Spring Aop 源码增强获取分享

    Spring Aop 源码增强获取分享

    这篇文章主要介绍了Spring Aop 源码增强获取分享,文章围绕主题的内容展开Spring Aop的相关介绍,具有一定的参考价值需要的小伙伴可以参考一下
    2022-05-05
  • java代理 jdk动态代理应用案列

    java代理 jdk动态代理应用案列

    java代理有jdk动态代理、cglib代理,这里只说下jdk动态代理,jdk动态代理主要使用的是java反射机制,需要了解的朋友可以参考下
    2012-11-11
  • Java之SpringBoot实现基本增删改查(前后端分离版)

    Java之SpringBoot实现基本增删改查(前后端分离版)

    这篇文章主要介绍了Java中SpringBoot如何实现基本的增删改查,前后端分离版,没有和前端进行联系,感兴趣的小伙伴可以借鉴阅读本文
    2023-03-03
  • java ReentrantLock详解

    java ReentrantLock详解

    这篇文章主要介绍了java ReentrantLock,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • java算法之余弦相似度计算字符串相似率

    java算法之余弦相似度计算字符串相似率

    这篇文章主要介绍了java算法之余弦相似度计算字符串相似率,对算法感兴趣的同学,可以参考下
    2021-05-05
  • springboot项目读取resources目录下的文件的9种方式

    springboot项目读取resources目录下的文件的9种方式

    本文主要介绍了springboot项目读取resources目录下的文件的9种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SpringBoot如何使用自定义注解实现接口限流

    SpringBoot如何使用自定义注解实现接口限流

    这篇文章主要介绍了SpringBoot如何使用自定义注解实现接口限流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论