随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

数组的声明与初始化:

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

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

数组的静态初始化:

  ·简化格式: 数据类型 数组名称 [] = { 数据1,数据2,数据3..... };

  ·完整格式: 数据类型 数组名称 [] = new [] {数据1,数据2,数据3......};

 

定义数组:

(脚标从零开始到数组长度-1)

int data [] = new int[10];
int [] data1 = new int[12];
int data2 [] = {1,2,3,4,5,6,7};
int [] data3 = new int[] {1,2,3,3,4,4,5,5,6};

输出数组:

  ·使用for循环输出:

for (int i = 0; i < data2.length; i++) {
      System.out.println(data2[i]);
  }

  ·使用迭代器输出:

for (int i : data3) {
            System.out.println(i);
        }

 

数组的引用传递:

        int [] data4;
        data4 = data;
        data[1] = 9;
        for (int i : data4) {
            System.out.println(i);
        }

定义一个数组data4,并将data的地址传递给data4.可以发现,此时data和data4是公用一个堆内存,表明了一个堆内存可以被多个占内存所指向。

二维数组:

  数组的动态初始化:

      ·数据类型 数组名称 [][] = new 数据类型 [行个数][列个数]

  数组的静态初始化:

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

 

二维数组可以理解为一维的嵌套,输出也就是通过一维的方式进行嵌套输出,比如:

复制代码
        int [][] arr = new int[5][5];
        int [][] arr1 = new int[][] {{1,2,3,4,5}, {1,2,3,4,5}};
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                System.out.println(arr1[i][j]);
            }
        }
        System.out.println("```````````````````");
        for (int[] i : arr1) {
            for (int i1 : i) {
                System.out.println(i1);
            }
        }    
复制代码

先定位列,再定位行。

 

数组与方法:

  ·数组的引用传递:

      

int data5 [] = new int[] {1,2,3,4,5};
printArr(data5);
public static void printArr(int temp[]) {
        for (int i : temp) {
            System.out.println("第" + i + "个:" + i); // 图方便不要学
        }

 

 

数组的拷贝:

  定义一个拷贝的类

复制代码
public class ArrCopy {
    public void arrCopy(int[] arr1, int start_arr1, int[] arr2, int start_arr2, int copy_length ) {
        for (int i = start_arr1,j = start_arr2; i < start_arr1 + copy_length; i++,j++) {
            arr2[j] = arr1[i];
        }
        for (int num : arr2) {
            if (num != 0) {
                System.out.println(num);
            }
        }
    }
}
复制代码
{
        int [] arr1 = new int[] {1,2,3,4,5,6,7,8,9,0};
        int [] arr2 = new int[100];
        ArrCopy copy = new ArrCopy();
        copy.arrCopy(arr1,1,arr2,0,4);
    }

定义两个数组后输出结果arr2:

 

 当然还有系统自带的数组拷贝:

System.arraycopy(arr1,0,arr2,1,4);
        for (int i : arr2) {
            System.out.println(i);
        }

 

 

 

数组对象内存图:

 

 

 

 

 

经供参考

 

posted on   时间完全不够用啊  阅读(77)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示