加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

06-01 Java 二维数组格式、二维数组内存图解、二维数组操作

发布时间:2020-12-14 06:10:03 所属栏目:Java 来源:网络整理
导读:二维数组格式1 span style="color: #ff0000;"gt;格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组。 n:表示每一个一维数组的元素有多少个。/span注意: A:以下格式也可以表示二维数组 a:数据类型 数组名[][] = new 数

二维数组格式1

<span style="color: #ff0000;"&gt;格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组。 n:表示每一个一维数组的元素有多少个。</span> 注意: A:以下格式也可以表示二维数组 a:数据类型 数组名[][] = new 数据类型[m][n]; b:数据类型[] 数组名[] = new 数据类型[m][n]; B:注意下面定义的区别 int x; int y; int x,y; int[] x; int[] y[]; int[] x,y[];//这个x是一维数组,y是二维数组

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Demo {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #ff0000;">//定义一个二维数组
int[][] arr = new int[3][2];
<span style="color: #008000;">//<span style="color: #008000;">定义了一个二维数组arr
<span style="color: #008000;">//<span style="color: #008000;">这个二维数组有3个一维数组的元素
<span style="color: #008000;">//<span style="color: #008000;">每一个一维数组有2个元素
<span style="color: #008000;">//<span style="color: #008000;">输出二维数组名称
System.out.println(arr); <span style="color: #008000;">//<span style="color: #008000;">地址值 [[I@175078b
<span style="color: #008000;">//<span style="color: #008000;">输出二维数组的第一个元素一维数组的名称
System.out.println(arr[0]); <span style="color: #008000;">//<span style="color: #008000;">地址值 [I@42552c
System.out.println(arr[1]); <span style="color: #008000;">//<span style="color: #008000;">地址值 [I@e5bbd6
System.out.println(arr[2]); <span style="color: #008000;">//<span style="color: #008000;">地址值 [I@8ee016
<span style="color: #008000;">//<span style="color: #008000;">输出二维数组的元素
System.out.println(arr[0][0]); <span style="color: #008000;">//<span style="color: #008000;">0
System.out.println(arr[0][1]); <span style="color: #008000;">//<span style="color: #008000;">0
<span style="color: #000000;"> }
}

格式1内存图解:

?

?二维数组格式2

m:表示这个二维数组有多少个一维数组。 列数没有给出,可以动态的给。这一次是一个变化的列数。

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Demo2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">定义数组
<span style="color: #0000ff;">int[][] arr = <span style="color: #0000ff;">new <span style="color: #0000ff;">int[3<span style="color: #000000;">][];

    System.out.println(arr);    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;[[I@175078b</span>
    System.out.println(arr[0]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;null</span>
    System.out.println(arr[1]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;null</span>
    System.out.println(arr[2]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;null

    </span><span style="color: #ff0000;"&gt;//动态的为每一个一维数组分配空间</span>
    arr[0] = <span style="color: #0000ff;"&gt;new</span> <span style="color: #0000ff;"&gt;int</span>[<span style="color: #ff0000;"&gt;2</span><span style="color: #000000;"&gt;];
    arr[</span>1] = <span style="color: #0000ff;"&gt;new</span> <span style="color: #0000ff;"&gt;int</span>[3<span style="color: #000000;"&gt;];
    arr[</span>2] = <span style="color: #0000ff;"&gt;new</span> <span style="color: #0000ff;"&gt;int</span>[1<span style="color: #000000;"&gt;];

    System.out.println(arr[</span>0]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;[I@42552c</span>
    System.out.println(arr[1]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;[I@e5bbd6</span>
    System.out.println(arr[2]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;[I@8ee016</span>

<span style="color: #000000;">
System.out.println(arr[0][0]); <span style="color: #008000;">//<span style="color: #008000;">0
System.out.println(arr[0][1]); <span style="color: #008000;">//<span style="color: #008000;">0
<span style="color: #ff0000;">//ArrayIndexOutOfBoundsException
//System.out.println(arr[0][2]); //错误
<span style="color: #000000;">
arr[1][0] = 100<span style="color: #000000;">;
arr[1][2] = 200<span style="color: #000000;">;
}
}

?二维数组格式2 ?内存图解:

二维数组格式3?

    举例:
       <span style="color: #ff0000;"&gt; int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};</span>
        int[][] arr = {{1,5},{6}};

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Demo3 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">定义数组
<span style="color: #0000ff;">int[][] arr = {{1,{6<span style="color: #000000;">}};

    System.out.println(arr);
    System.out.println(arr[</span>0<span style="color: #000000;"&gt;]);
    System.out.println(arr[</span>1<span style="color: #000000;"&gt;]);
    System.out.println(arr[</span>2<span style="color: #000000;"&gt;]);

    System.out.println(arr[</span>0][0]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;1</span>
    System.out.println(arr[1][0]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;4</span>
    System.out.println(arr[2][0]); <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;6</span>

<span style="color: #000000;">
System.out.println(arr[0][1]); <span style="color: #008000;">//<span style="color: #008000;">2
System.out.println(arr[1][1]); <span style="color: #008000;">//<span style="color: #008000;">5
<span style="color: #008000;">//<span style="color: #008000;">越界
System.out.println(arr[2][1]); <span style="color: #008000;">//<span style="color: #008000;">错误
<span style="color: #000000;"> }
}

二维数组格式3 ?内存图解:

?遍历二维数组

外循环控制的是二维数组的长度,其实就是一维数组的个数。 内循环控制的是一维数组的长度。

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Test {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">定义一个二维数组
<span style="color: #0000ff;">int[][] arr = {{1,9<span style="color: #000000;">}};

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;用方法改进
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;调用方法</span>

<span style="color: #000000;"> printArray2(arr);
}

</span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt;
    需求:遍历二维数组
    两个明确:
        返回值类型:void
        参数列表:int[][] arr
</span><span style="color: #008000;"&gt;*/</span>
<span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;void</span> printArray2(<span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt;[][] arr) {
    </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; <span style="color: #ff0000;"&gt;x<arr.length</span>; x++<span style="color: #000000;"&gt;) {
        </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> y=0; y<<span style="color: #ff0000;"&gt;arr[x].length</span>; y++<span style="color: #000000;"&gt;) {
            System.out.print(arr[x][y]</span>+" "<span style="color: #000000;"&gt;);
        }
        System.out.println();
    }
}

}

二维数组求和:

分析: A:把题目的数据用二维数组来表示 int[][] arr = {{22,44},{77,88},{25,65},{11,99}}; B:如何求和呢? 求和其实就是获取到每一个元素,然后累加即可。 C:定义一个求和变量sum,初始化值是0。 D:通过遍历就可以得到每一个二维数组的元素。 E:把元素累加即可。 F:最后输出sum,就是结果。

<span style="color: #008000;">*/
<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Test2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">把题目的数据用二维数组来表示
<span style="color: #0000ff;">int[][] arr = {{22,99<span style="color: #000000;">}};

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;定义一个求和变量sum,初始化值是0。</span>
    <span style="color: #0000ff;"&gt;int</span> sum = 0<span style="color: #000000;"&gt;;

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;通过遍历就可以得到每一个二维数组的元素。</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<arr.length; x++<span style="color: #000000;"&gt;) {
        </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> y=0; y<arr[x].length; y++<span style="color: #000000;"&gt;) {
            </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;把元素累加即可。</span>
            <span style="color: #ff0000;"&gt;sum +=</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt; arr[x][y];</span>
        }
    }

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;最后输出sum,就是结果。</span>
    System.out.println("一年的销售额为:"+sum+"万元"<span style="color: #000000;"&gt;);
}

}

?

二维数组树出杨辉三角:打印杨辉三角形(行数可以键盘录入)

需求:打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 分析:看这种图像的规律 A:任何一行的第一列和最后一列都是1 B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 步骤: A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。 这个n的数据来自于键盘录入。 B:给这个二维数组任何一行的第一列和最后一列赋值为1 C:按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 D:遍历这个二维数组。

<span style="color: #008000;">*/
<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;

<span style="color: #0000ff;">class<span style="color: #000000;"> Array2Test3 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">创建键盘录入对象
Scanner sc = <span style="color: #0000ff;">new<span style="color: #000000;"> Scanner(System.in);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;这个n的数据来自于键盘录入。</span>
    System.out.println("请输入一个数据:"<span style="color: #000000;"&gt;);
    </span><span style="color: #0000ff;"&gt;int</span> n =<span style="color: #000000;"&gt; sc.nextInt();

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;定义二维数组</span>
    <span style="color: #0000ff;"&gt;int</span>[][] arr = <span style="color: #0000ff;"&gt;new</span> <span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt;[n][n];

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;给这个二维数组任何一行的第一列和最后一列赋值为1</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<arr.length; x++<span style="color: #000000;"&gt;) {
        arr[x][</span>0] = 1; <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;任何一行第1列</span>
        arr[x][x] = 1; <span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;任何一行的最后1列</span>

<span style="color: #000000;"> }

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;按照规律给其他元素赋值
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=2; x<arr.length; x++<span style="color: #000000;"&gt;) {
        </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;这里如果y<=x是有个小问题的,就是最后一列的问题
        </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;所以这里要减去1
        </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;并且y也应该从1开始,因为第一列也是有值了</span>
        <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> <span style="color: #ff0000;"&gt;y=1</span>; <span style="color: #ff0000;"&gt;y<=x-1</span>; y++<span style="color: #000000;"&gt;) {
            </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;每一个数据是它上一行的前一列和它上一行的本列之和。</span>
            <span style="color: #ff0000;"&gt;arr[x][y] = arr[x-1][y-1] + arr[x-1</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt;][y];</span>
        }
    }

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似</span>
    <span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> x=0; x<arr.length; x++<span style="color: #000000;"&gt;) {
        </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> y=0;<span style="color: #ff0000;"&gt; y<=x</span>; y++<span style="color: #000000;"&gt;) {
            System.out.print(arr[x][y]</span>+"t"<span style="color: #000000;"&gt;);
        }
        System.out.println();
    }
}

}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读