java 不规则二维数组的定义与输出 及 Arrays.fill(type[] A , type B)的用法 及 交换两行的方法

来源:互联网 发布:json转map 编辑:程序博客网 时间:2024/04/27 23:36
package 第3章;import java.until.*;public class 第3章a{    public static void main(String[] args)    {        //打印不规则二维数组        final int MAX=10;        int[][] odds=new int[MAX][];        for(int i=0;i<MAX;++i)        {            odds[i]=new int[i+1];        }        for(int j=0;j<odds.length;++j)        {            for(int m=0;m<odds[j].length;++m)            {                Arrays.fill(odds[j], 3);            }        }        for(int[] num:odds)        {            for(int lie:num)            {                System.out.printf("%4d",lie);            }            System.out.println();        }    }          }

Java实际上没有多维数组,只有一位数组。多维数组被解释为数组的数组
表达式balances[i]引用第i个子数组,也就是二维表的第i行,它本身也是一个数组balances[i][j]引用这个数组的第j项。
由于可以单独的存取某一行,所以可以让两行交换:package 第3章;

import java.util.Arrays;public class 第3章a{    public static void main(String[] args)    {        //两行交换        double [][] number=new double[2][2];        number[0][1]=1;number[0][0]=1;        number[1][0]=0;number[1][1]=0;        System.out.println(Arrays.deepToString(number));        double temp[]=number[0];        number[0]=number[1];        number[1]=temp;        System.out.println(Arrays.deepToString(number));    }          }
run:[[1.0, 1.0], [0.0, 0.0]][[0.0, 0.0], [1.0, 1.0]]

还可以方便的构造一个不规则数组,即数组的每行有不同的长度。
要想创建一个不规则数组,首先要分配一个具有所含行数的数组。
int[][] odds=new int[HANG][];
接下来,分配行数:

for(int n=0;n<HANG;n++)      odds[n]=new double[n+1];    //对每一行创建指定的匿名数组并赋值;

Java中,
double[][] balances=new double[10][6];
不同于C++
而是分配了一个包含10个指针的数组:
double** balances=new double*[10];
然后,指针数组的每一个元素被填充了一个包含6个数字的数组。

for(i=0;i<10;i++)  balances[i]=new double[6];

当创建new double[10][6]时,这个循环将自动的执行。当需要不规则的数组时,只能单独的创建行数组。

阅读全文
0 0
原创粉丝点击