精华内容
下载资源
问答
  • Java多维数组
    2021-11-28 20:58:50

      介绍:多维数组即为多个一维数组作为多维数组使用。

            格式1为:

    public class demo{
        public static void mian(String[]args){
        //这是一个二维数组,等号左边"[]"表示二维数组的长度,也就是有几个一维数组。等号右边第一个"        
        [3]"表示每一个数组最多有几个元素(必须给定具体的值);
        int[][]arr=new int[3][];
        //在创建好的二维数组里定义一个一维数组
         arr[0]=new int[2];
        //定义一维数组里的对应下标的元素
         arr1[0][0]=1;
         arr1[0][1]=2;
        
         arr[1]=new int[2];
         arr1[1][0]=3;
         arr1[1][1]=4;
            
         arr[2]=newint[2];
         arr1[2][0]=5;
         arr1[2][1]=6;
    
        
        }
    }
    

        格式2为:

    public class demo{
        public static void main(String[]args){
            //定义一个二维数组并定义元素
            int[][]arr1={{1,2,3},{4,5,6},{7,8,9}}
        }
    }

    更多相关内容
  • 1.数组定义格式分为动态和静态(1)静态初始化的格式:两种数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3...}//示例int[] arr = new int[]{10,20,30,40};数据类型[] 数组名 = {元素1, 元素2, 元素3...};/...

    1.数组定义格式分为动态和静态

    (1)静态初始化的格式:两种

    数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3...}

    //示例

    int[] arr = new int[]{10,20,30,40};

    数据类型[] 数组名 = {元素1, 元素2, 元素3...};

    //示例

    int[] arr = {10,20,30,40};

    (2)数组的动态定义格式

    数据类型[]  数组名 = new 数据类型[数组长度];

    数据类型 变量名[] = new 数据类型[数组长度];了解即可

    //数组动态初始化

    //示例

    //定义长度为3的int数组

    int[] arr = new int[3];

    //定义长度为5的double数组

    double[] arr = new double[5];

    //定义长度为5的char数组

    char[] arr = new char[5];

    //定义长度为4的字符串数组

    String[] arr = new String[4];

    (3)数组的索引值的特点?

    数组的索引是从0开始,每次+1.

    =============================================

    2.多维数组

    多维数组声明

    数据类型[][] 数组名称;

    数据类型[] 数组名称[];

    数据类型数组名称[][];

    以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。

    例如:

    int[][] map;

    char c[][];

    和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    多维数组初始化

    和一维数组一样,多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。

    静态初始化

    以二维数组的静态初始化为例,来说明多维数组静态初始化的语法格式。

    示例代码如下:

    int[][] m = {{1,2,3},{2,3,4}};

    在二维数组静态初始化时,也必须和数组的声明写在一起。数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之间也使用逗号分隔。由该语法可以看出,内部的大括号其实就是一个一维数组的静态初始化,二维数组只是把多个一维数组的静态初始化组合起来。

    同理,三维数组的静态初始化语法格式如下:

    int[][][] b = {{{1,2,3},{1,2,3}},{{3,4,1},{2,3,4}}};

    说明:这里只是演示语法格式,数值本身没有意义。

    动态初始化

    二维数组动态初始化的语法格式:

    数据类型[][] 数组名称= new 数据类型[第一维的长度][第二维的长度];

    数据类型[][] 数组名称;

    数组名称= new 数据类型[第一维的长度][第二维的长度];

    示例代码:

    byte[][] b = new byte[2][3];

    int m[][];

    m = new int[4][4];

    和一维数组一样,动态初始化可以和数组的声明分开,动态初始化只指定数组的长度,数组中每个元素的初始化是数组声明时数据类型的默认值。例如上面初始化了长度为2X3 的数组b,和4X4 的数组m。使用这种方法,初始化出的第二维的长度都是相同的,如果需要初始化第二维长度不一样的二维数组,则可以使用如下的格式:

    int n[][];

    n = new int[2][]; //只初始化第一维的长度

    //分别初始化后续的元素

    n[0] = new int[4];

    n[1] = new int[3];

    这里的语法就体现了数组的数组概念,在初始化第一维的长度时,其实就是把数组n 看成了一个一维数组,初始化其长度为2,则数组n 中包含的2个元素分别是n[0]和n[1],而这两个元素分别是一个一维数组。后面使用一维数组动态初始化的语法分别初始化n[0]和n[1]。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    引用数组元素

    对于二维数组来说,由于其有两个下标,所以引用数组元素值的格式为:

    数组名称[第一维下标][第二维下标]

    该表达式的类型和声明数组时的数据类型相同。例如引用二维数组m中的元素时,使用m[0][0]引用数组中第一维下标是0,第二维下标也是0 的元素。这里第一维下标的区间是0 到第一维的长度减1,第二维下标的区间是0 到第二维的长度减1。

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    获得数组长度

    对于多维数组来说,也可以获得数组的长度。但是使用数组名.length获得的是数组第一维的长度。如果需要获得二维数组中总的元素个数,可以使用如下代码:

    int[][] m = {{1,2,3,1},{1,3},{3,4,2}};

    int sum = 0;

    for(int i = 0;i < m.length;i++){         //循环第一维下标

    sum += m[i].length;                 //第二维的长度相加

    }

    在该代码中,m.length 代表m 数组第一维的长度,内部的m[i]指每个一维数组元素,m[i].length 是m[i]数组的长度,把这些长度相加就是数组m中总的元素个数。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------

    多维数组使用示例

    多维数组在实际使用时,更多的在于数组的设计,在实际使用中,一般对于多维数组的统计相对来说比一维数组要少一些,更多的设计数组的大小,并规定数组中存储值的含义,在代码中按照值的规定使用数组。

    所以在实际使用多维数组以前,需要考虑清楚:

    ① 需要几维数组

    ② 每一维的长度是多少

    ③ 按照怎样的规则存储值

    ④ 数组值的意义是什么

    拉丁方阵

    要求:实现任意阶拉丁矩阵的存储和输出拉丁矩阵是一种规则的数值序列,例如4 阶的拉丁矩阵如下所示:

    1 2 3 4

    2 3 4 1

    3 4 1 2

    4 1 2 3

    该矩阵中的数字很规则,在实际解决该问题时,只需要把数值的规律描述出来即可。

    实现思路:声明一个变量n,代表矩阵的阶,声明和初始化一个nXn 的数组,根据数据的规律,则对应的数值为(行号+ 列号+ 1),当数值比n 大时,取和n的余数。

    实现的代码如下:

    int n = 6;

    int[][] arr = new int[n][n];

    int data; //数值

    //循环赋值

    for(int row = 0;row < arr.length;row++){

    for(int col = 0;col

    data = row + col + 1;

    if(data <= n){

    arr[row][col] = data;

    }else{

    arr[row][col] = data %n;

    }

    }

    }

    //输出数组的值

    for(int row = 0;row < arr.length;row++){

    for(int col = 0;col

    System.out.print(arr[row][col]);

    System.out.print(' ');

    }

    System.out.println();

    }

    该代码中变量data 存储行号+列号+1 的值,每次在赋值时判别data的值是否小于等于n,根据判断的结果赋值对应数组元素的值。

    在解决实际问题时,观察数字规律,并且把该规律使用程序进行表达,也是每个程序员需要的基本技能

    展开全文
  • Java多维数组详解

    2021-03-05 15:05:04
    之前给大家介绍了java一维数组以及java二维数组,下面的话就来给大家讲一下java多维数组方面的知识。除去一维数组和二维数组之外,Java当中还支持更多维的数组。像三维数组、四维数组和五维数组等等它们都属于多维...

    之前给大家介绍了java一维数组以及java二维数组,下面的话就来给大家讲一下java多维数组方面的知识。

    除去一维数组和二维数组之外,Java当中还支持更多维的数组。

    像三维数组、四维数组和五维数组等等它们都属于多维数组。

    一般来说的话我们也将二维数组看作是多维数组,下面主要来介绍多维数组。

    多维数组的声明、初始化和使用都和二维数组都是很相似的这里的话就不再具体的说了。

    下面来直接来看一个示例:

    假设程序当中一个名字叫做namelist的String类型三维数组,下面的话就编写代码来对它进行遍历,输出每个元素的值。

    下面是具体的代码:public static void main(String[] args)

    {

    String[][][] namelist = {

    {

    {

    "张阳"

    , "李风"

    , "陈飞"

    }

    , {

    "乐乐"

    , "飞飞"

    , "小曼"

    }

    }

    , {

    {

    "Jack"

    , "Kimi"

    }

    , {

    "Lucy"

    , "Lily"

    , "Rose"

    }

    }

    , {

    {

    "徐璐璐"

    , "陈海"

    }

    , {

    "李丽丽"

    , "陈海清"

    }

    }

    };

    for (int i = 0; i 

    {

    for (int j = 0; j 

    {

    for (int k = 0; k 

    {

    System.out.println("namelist[" + i + "][" + j + "][" + k + "]=" + namelist[i][j][k]);

    }

    }

    }

    }

    输出结果:namelist[0][0][0]=张阳

    namelist[0][0][1]=李风

    namelist[0][0][2]=陈飞

    namelist[0][1][0]=乐乐

    namelist[0][1][1]=飞飞

    namelist[0][1][2]=小曼

    namelist[1][0][0]=Jack

    namelist[1][0][1]=Kimi

    namelist[1][1][0]=Lucy

    namelist[1][1][1]=Lily

    namelist[1][1][2]=Rose

    namelist[2][0][0]=徐璐璐

    namelist[2][0][1]=陈海

    namelist[2][1][0]=李丽丽

    namelist[2][1][1]=陈海清

    以上关于Java多维数组的一些知识你都了解了吗?更多和多维数组相关的java基础知识,请继续来本站进行了解吧。

    推荐阅读:

    展开全文
  • 一、二维数组以及多维数组1、二维数组的定义:​在一维数组中定义每一个元素也是一个数组元素,这样的数组称为”二维数组“​多维数组就是在一维数组上再次定义二维数组或三位数组等。​一维数组定义int [] array={1...

    一、二维数组以及多维数组

    1、二维数组的定义:

    ​在一维数组中定义每一个元素也是一个数组元素,这样的数组称为”二维数组“

    ​多维数组就是在一维数组上再次定义二维数组或三位数组等。

    ​一维数组定义int [] array={1,2,3}

    //定义三个长度的二维数组,其数组的每一个元素是一个一维数组

    int [][] arrays={{},{},{}};

    或者

    int [][] arrays=new int [3][2];//等号右边的左边[]中表示二维数组的长度,其中2可以省略,3不能省略

    //注意:等号左边有几个[]就表示几维

    51ec53992c8f4a58961a911222c964f1.png

    //1、定义二维数组

    int [][] array;

    //定义时给二维数组赋值 3个长度的二维数组里面的一维数组的长度不一定相等

    int [][] array2={{1,2,3},{4,5},{7,8}}

    //定义时只指定大小,不给定初始值

    int [][]array3=new int[3][];//等价{{},{},{}}

    //array3[0][0]=1;//赋值时 空指针异常,因为里面的一维数组是空的

    //定义一个3个长度的二维数组,里面的元素长度是2

    int array4[][]=new int[3][2];

    //给元素赋值

    array4[0][0]=1;

    //输出二维数组中的所有元素

    for(int i=0;i

    //System.out.println(array4[i]);

    for(int j=0;j

    System.out.println(array[i][j]);

    }

    }

    二、二维数组的应用

    1、定义5*5的矩阵,计算最大值最小值

    public class Test{

    public static void main(String[] args) {

    //定义一个5*5的二维数组

    int [][] array=new int[5][5];

    //定义最大值,并初始化

    int max=0;

    //定义最小值,并初始化

    int min=0;

    //为二维数组中的每一个元素赋上一个0-100的整数值,并遍历输出二维数组

    for (int i = 0; i

    for (int j = 0; j

    array[i][j]=(int)(Math.random()*100);

    System.out.print(array[i][j]+"\t");

    }

    System.out.println();//换行

    }

    //将数组中的第一个元素赋值给max

    max =array[0][0];

    for (int i = 0; i

    for (int j = 0; j

    //如果数组中元素大于max,则将元素赋值给max

    if(array[i][j]>=max){

    max=array[i][j];

    }

    }

    }

    //输出二维数组中的最大值

    System.out.println("最大值为:"+max);

    //将数组中的第一个元素赋值给min

    min =array[0][0];

    for (int i = 0; i

    for (int j = 0; j

    //如果元素小于min,则将元素赋值给min

    if(array[i][j]<=min){

    min=array[i][j];

    }

    }

    }

    //输出二维数组中的最小值

    System.out.println("最小值为:"+min);

    }

    }

    2、五子棋游戏

    public class Test{

    //定义一个字符串型20*20的二维数组

    static String [][] qipan=new String[20][20];

    public static void main(String[] args) {

    System.out.println("------------------------------五子棋游戏------------------------------");

    //初始化棋盘

    for (int i = 0; i

    for (int j = 0; j

    qipan[i][j]="+";

    }

    }

    printQipan();

    System.out.println("游戏开始:");

    Scanner sc=new Scanner(System.in);

    while(true) {

    System.out.println("请玩家(黑棋)落子:");

    System.out.print("请输入棋子的行数(1-20):");

    int num1 = sc.nextInt();

    System.out.print("请输入棋子的列数(1-20):");

    int num2 = sc.nextInt();

    if (num1 <= 0 || num1 > 20 || num2 <= 0 || num2 > 20 ) {

    System.out.println("落子超出棋盘边界,请重新落子!");

    continue;

    } else {

    if( qipan[num1 - 1][num2 - 1] != "+"){

    System.out.println("该位置已有棋子,请重新落子!");

    continue;

    }else{

    qipan[num1-1][num2-1]="⭕";

    }

    }

    //白棋落子

    int row=0;

    int col=0;

    // System.out.println("白棋思考中...");

    while(true){

    row=(int)(Math.random()*20);

    col=(int)(Math.random()*20);

    if(qipan[row][col]=="+"){

    break;

    }

    }

    qipan[row][col]="●";

    //打印棋盘

    printQipan();

    //判断输赢

    if(judge()){

    System.out.println(s+"赢了");

    break;

    }

    }

    }

    //打印棋盘

    public static void printQipan(){

    for (int i = 0; i

    for (int j = 0; j

    System.out.print(qipan[i][j]+"\t");

    }

    System.out.println();

    }

    }

    //判断输赢的方法

    static String s="";

    public static boolean judge(){

    boolean flag=false;

    for (int i = 0; i

    for (int j = 0; j

    if(qipan[i][j]=="⭕"||qipan[i][j]=="●"){

    //判断横向

    if(j<16&&

    qipan[i][j]==qipan[i][j+1]

    &&qipan[i][j]==qipan[i][j+2]

    &&qipan[i][j]==qipan[i][j+3]

    &&qipan[i][j]==qipan[i][j+4]){

    s=qipan[i][j];

    flag=true;

    break;

    }

    //判断右斜下

    else if(i<16&&j<16&&qipan[i][j]==qipan[i+1][j+1]

    &&qipan[i][j]==qipan[i+2][j+2]

    &&qipan[i][j]==qipan[i+3][j+3]

    &&qipan[i][j]==qipan[i+4][j+4]){

    s=qipan[i][j];

    flag=true;

    break;

    }

    //判断纵向

    else if(i<16&&qipan[i][j]==qipan[i+1][j]

    &&qipan[i][j]==qipan[i+2][j]

    &&qipan[i][j]==qipan[i+3][j]

    &&qipan[i][j]==qipan[i+4][j]){

    s=qipan[i][j];

    flag=true;

    break;

    }

    //判断左斜下

    else if(i<16&&j>3&&qipan[i][j]==qipan[i-1][j-1]

    &&qipan[i][j]==qipan[i-2][j-2]

    &&qipan[i][j]==qipan[i-3][j-3]

    &&qipan[i][j]==qipan[i-4][j-4]){

    s=qipan[i][j];

    flag=true;

    break;

    }

    }

    }

    }

    return flag;

    }

    }

    拓展:利用二分法查找数组中的元素

    public class Test {

    public static void main(String[] args) {

    // 1、指定一个20个长度的数组 随机数

    int [] array=new int[20];

    for (int i = 0; i

    array[i]=(int)(Math.random()*100);

    }

    //输出数组中的每一个元素

    System.out.println("数组中的元素为:");

    System.out.println(Arrays.toString(array));

    // 2、排序 (升序)

    Arrays.sort(array);

    //输出排序后的数组

    System.out.println("排序后的数组为:");

    System.out.println(Arrays.toString(array));

    // 3、输入一个目标数

    Scanner sc=new Scanner(System.in);

    System.out.print("请输入想要查找的数字:");

    int num=sc.nextInt();

    // 3、比较

    //定义 最小值下标 最大值下标 中间值下标 查找的目标下标

    /**

    * 最小下标 0

    * * 最大下标 length-1

    * *

    * * 循环条件: 最小值小标<=最大值下标

    * 中间下标: middle = (最小值+最大值)/2

    * * 如果中间值比目标大 说明 在左边 改变最大值下标 = 中间值下标-1

    * * 如果中间值比目标小 说明 在右边 改变最小值小标 = 中间值下标+1

    * * 如果相等 就break

    * * 一直这样比较 结束的条件是什么

    */

    //最小值小标

    int minIndex=0;

    //最大值下标

    int maxIndex=array.length-1;

    //中间值下标

    int middle;

    //目标值下标

    int index=-1;

    //计数器

    int count=0;

    while(minIndex<=maxIndex){

    count++;

    middle=(minIndex+maxIndex)/2;

    if(num

    maxIndex=middle-1;

    }else if(num>array[middle]){

    minIndex=middle+1;

    }else {

    index=middle;

    break;

    }

    }

    if(index!=-1){

    System.out.println("目标已找到");

    System.out.print("共查询次数:"+count+"\n");

    System.out.print("目标数下标为:"+index);

    }else{

    System.out.println("目标不存在");

    }

    }

    }

    展开全文
  • Java多维数组声明格式

    千次阅读 2019-04-20 22:49:42
    关于多维数组声明的形式你知道哪几种呢? 首先先上一个错误的例子: 这里arr9 - arr11在等式右边都错误的在中括号中加了数组大小,导致报错; 而arr11、arr12则是等式右边二维数组初始化时没有赋予初始大小导致报错...
  • java 多维数组

    2021-08-29 15:30:10
    1. 多维数组概述 数组:它是一个线性数据结构,用于存储一组相同数据类型的数据(长度一经定义不可变)。 需求:存储 1 个班的 5 名同学的成绩。 double[] scores = new double[5]; scores[0] = 90; // .... ...
  • Java多维数组

    2021-03-11 15:51:18
    Java语言里提供了支持多维数组的语法,但如果从数组底层的运行机制上来看声明多维数组的实质便是一次性声明多个一维数组。 二维数组使用示例 二维数组的三种声明使用方式 第一种 //多个[]的使用即为多维数组 有几...
  • 数组Java中的一种容器对象,它拥有多个单一类型的值。当数组被创建的时候数组长度就已经确定了。在创建之后,其长度是固定的。下面是一个长度为10的数组:public class ArrayDemo {private int arraySize=10;...
  • java多维数组详解

    2020-11-12 18:52:41
    java中其实没有多维数组的概念,只不过是依据数组的概念以及特点技术上的延伸 本质上就是存储数组的数组 多维的数组的使用 ①声明 // ### ①声明 // 1)数据类型 [][] 数组名; // 创建一个存储整数类型数组 ...
  • 多维数组定义

    2022-03-17 14:46:06
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一堆数组,其每一个元素都是一个一堆的数组 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个二行五列的数组 public ...
  • java多维数组

    2021-08-13 14:07:25
    1.多维数组概述 数组:他是一个线性数据结构,用语存储一组相同数据类型的数据(长度一经定义不可变)。 需求:存储 1 个班的 5 名同学的成绩。 double[] scores = new double[5]; scores[0] = 90; // ... ...
  • 第六天Java学习笔记,数组篇04——多维数组,笔记根据学习进度更新。我是流苏,期待与你一起学习! 哪怕是自己的一点小小的克制,也会使人变得强而有力。——高尔基
  • Java 数组、多维数组,动态、静态初始化,数组JVM内存模型分析什么是数组所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式。数组中的数据称为数组元素,我们使用索引来...
  • 数组前言1、数组的创建1.1 、动态初始化创建数组1.2 、静态初始化创建数组2、数组的遍历2.1、数组的遍历(1)2.2、数组的遍历(2)3、数组的练习4、存储引用变量5、多维数组 前言 数组的定义:在内存中一段连续的...
  • 看看多维数组的一个例子(定义一个二维数组) int[][] aaa = new int[2][5]; 上面定义的数组可以看作是一个二行五列的数组。 2.如何定义多维数组 咱们一维数组有种定义方式如下,那么二位数组就是这么定义。 int...
  • 一、多维数组Java 语言里提供了支持多维数组的语法。如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,类似于一个 Excel表格。以二维数组来讨论,可以看成一维数组array1 中又作为另一个...
  • 1. Java数组的定义:1) 和其它编程语言的数组定义基本相同,具有2要素,分别是类型一致(数组中的数据都是一种类型的)和定长(初始化时就已经确定长度,这也意味着数组的内存空间也确定了,即大小不变了);2) 在Java中...
  • #Java学习-多维数组的理解 1、多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 2、二维数组 int a[][]=new int [2][5]; 解析:以上二维数组a可以看成一个...
  • 在操作数组时,经常需依次访问数组中的每个元素,这种操作成为数组的遍历。 public class ArrayDemo04 { ... // 定义数组 // 使用for循环遍历数组的元素 for (int i = 0; i < arr.length; i++) { System.out.
  • java多维数组赋值

    千次阅读 2017-12-25 19:21:39
    /*今天做复习题的时候想到的一些东西。 *关于多维数组的长度问题 *以及给多维数组赋值的方法*/ package bate; ...// 定义多维数组 int[][] k = new int [4][5];//名 [][] int a=k.length; //输
  • 在互联网产业发展的越发如火如荼的今时今日,越来越多的人开始投入到...首先说一下,在java中创建一个具有指定的组件类型和维度的新数组(多维数组)newInstance,代码如下所示:publicstaticObjectnewInstance(Cla...
  • Java中的数组运用广泛,之前讲了一维数组的定义与... 2、Java多维数组的声明和初始化应按从高维到低维的顺序进行; 3、二维数组举例:<int [] [] a = {{1,2},{3,4,5,6},{6,7,8}}> 4、二维数组的初始化:...
  • Java 多维数组是由一维数组组合而成,这种说法是否正确?Java 多维数组是由一维数组组合而成,这种说法是否正确?明天Java考试了 有没有大神帮帮忙呢一、选择题1.对象的静态特征在类中表示为变量,称为类的(B)A....
  • java基础——多维数组

    2017-08-12 16:32:19
    多维数组1.概念我们都知道,数组是多个数据的集合。如果现在有多个数组,我想把多个数组保存在一个集合里,此时我又应该怎么办呢? 数组语法:数组元素类型[] 数组名 int[] arr1={1,2,3} int[] arr2={4,5} int[]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,735
精华内容 9,094
关键字:

java多维数组定义

java 订阅