Java 数组

声明

数据类型 变量 = new 数据类型[分配多少内存]

  1. 数组:

    • 是一种数据类型(引用类型)

    • 相同数据类型元素的集合

    • 定义:

      //声明整型数组arr,包含10个元素,每个元素都是int型,默认值为0
      int[] arr = new int[10]; //有些是int arr[]=new int[10]这种是c语言的写法
      //声明浮点型数组d,包含10个元素,每个元素都是double型,默认值为0.0
      double[] d = new double[10];
      //声明布尔型数组b,包含26个元素,每个元素都是boolean型,默认值false
      boolean[] b = new boolean[26];
      

初始化

:------初始化的是数组中的元素

int[] a = new int[3]; //0,0,0默认 前面int是声明,后面new int[3]是初始化
int[] a = {2,5,8}; //2,5,8
int[] a = new int[]{2,5,8}; //2,5,8
int[] a;
//a = {2,5,8}; //编译错误,此方式只能声明同时初始化
a = new int[]{2,5,8};
  • 访问:------访问的是数组中的元素

    • 通过(数组名.length)可以获取数组的长度(元素个数)

      int[] arr = new int[10];
      System.out.println(arr.length); //输出arr的长度--10
      
    • 通过索引/下标来访问数组中的元素

      下标从0开始,最大到数组的长度-1

      int[] arr = new int[3];
      arr[0] = 100; //给第1个元素赋值为100
      arr[1] = 200; //给第2个元素赋值为200
      arr[2] = 300; //给第3个元素赋值为300
      //arr[3] = 400; //运行时发生数组下标越界异常,下标线是0-2 3个元素
      System.out.println(arr[arr.length-1]); //300,输出最后一个元素的值
      

数组输出

  • 遍历/迭代:从头到尾走一遍

    int[] arr = new int[10];
    for(int i=0;i<arr.length;i++){ //遍历arr数组
        arr[i] = 100; //给每个元素都赋值为100
        System.out.println(arr[i]); //输出每个元素的值
    }
    

数组的复制

复制:

  • java提供的System.arraycopy()方法,代码如下:

    int[] a = {10,20,30,40,50};
    int[] b = new int[6]; //0,0,0,0,0,0
    //a:源数组
    //1:源数组的起始下标
    //b:目标数组
    //0:目标数组的起始下标
    //4:要复制的元素个数
      //注意长度不要越界,否则异常
    System.arraycopy(a,1,b,0,4);
    for(int i=0;i<b.length;i++){
        System.out.println(b[i]);
    }
    
  • 借助于java提供的Arrays类的copyOf()方法,代码如下:

    int[] a = {10,20,30,40,50};
    //a:源数组 Source Position(srcPos)
    //b:目标数组 Destination Position(desPos)
    //6:目标数组的长度(元素个数)
    //----若目标数组长度>源数组长度,则在末尾补默认值
    //----若目标数组长度<源数组长度,则将末尾的去掉
    //灵活性太差,无法做到中间截取
    
    int[] b = Arrays.copyOf(a,4);
    for(int i=0;i<b.length;i++){
        System.out.println(b[i]);
    }
    

    copyOf()可以实现数组的扩容,代码如下:

    int[] a = {10,20,30,40,50};
    //数组的扩容(创建了一个更大的新数组,并将源数组数据复制进去了)
    a = Arrays.copyOf(a,a.length+1);
    for(int i=0;i<a.length;i++){
        System.out.println(a[i]);
    }
    

    数组的排序

    . - 排序:

    • 排序是对数组所施加的最常用的算法

    • 排序分两种:升序(从小到大)、降序(从大到小)

    • 常见排序算法有:快速排序、冒泡排序、插入排序…

    • java自带的排序功能: Arrays.sort(arr); //升序排列

    • 代码演示:

      int[] arr = new int[10];
      for(int i=0;i<arr.length;i++){
          arr[i] = (int)(Math.random()*100);
          System.out.println(arr[i]);
      }
      
      Arrays.sort(arr); //对arr进行升序排列
      
      System.out.println("排序后:");
      for(int i=0;i<arr.length;i++){
          System.out.println(arr[i]);
      }
      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值