数组学习笔记

数组

  • 数组是相同类型数据的有序集合。
  • 数组描述的是相同类型的多个数据,按照一定的先后次序排列组合而成。
  • 每个数据为一个数组元素,每个数组元素可以通过一个下标来访问。

数组声明和创建

  • 首先必须声明数组变量,才能在程序中使用数组。语法
dataType[] array; //首选的方法

dataType array[]; //效果一样,但不是首选
  • Java语言用new操作符来创建数组。语法
dataType[] array = new dataType[size];//size是自己定义的数组长度
  • 数组元素通过索引访问,索引从0开始。
array[0];//就是数组的第一个元素
  • 获取数组长度:
array.length;//数组长度
  • 创建
public static Test{
    public static void mian(String[] args){
        int []arrays; //声明数组
        arrays = new int[5];//创建一个长度为5的数组
        
        int []nums = {1,2,3,4,5};//这是一个直接赋值的长度为5的数组
        
        //数组赋值
        arrays[0] = 1;
        arrays[1] = 2;
        arrays[2] = 3;
        arrays[3] = 4;
        arrays[4] = 5;
        
        //遍历输出数组中的数据
        for(int i=0;i<5;i++)
        {
            System.out.println(arrays[i]);
        }
    }
}

数组的四个基本特点

  • 数组长度是确定的。创建之后,大小不可改变。
  • 其中元素必须是同类型的,不能出现混合类型。
  • 数组中的元素类型可以是任何数据类型,包括基本类型和引用类型。
  • 数组变量是引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身是对象,Java中对象是在堆中的,所以数组对象也是在堆中的。

内存分析

  • Java内存分析:

    Java内存:

      • 存放new的对象和数组
      • 可以被所有的线程共享,不会存放别的对象引用
      • 存放基本变量类型(包括这个基本类型的具体数值)
      • 引用对象的变量(会存放这个引用在堆里面的具体地址)
    • 方法区
      • 可以被所有的线程共享
      • 包含了所有的class和static变量

数组下标

  • 下标的合法区间:[0,lenght-1],如果越界就会报错。
public static void main(String[] args){
    int[] nums = new int[2];
    System.out.println(nums[2]);//这个就越界了,这个数组长度为2,下标范围是[0,1].
}
  • ArrayIndexOutOfBoundsException:数值小标越界异常的报错!

多维数组

  • 多维数组可以看成是数组的数组,比如二维就是一个特殊的一维数组,它的每一个元素都是一个一维数组。
  • 二维数组
int nums[][] = new int[3][4];//可以看成一个三行五列的数组

Arrays类

  • 数组的工具类java.util.Arrays

  • 因为数组对象本身并没有什么方法给我们调用,但是API中提供了一个工具类Arrays给我们使用,可以对数据对象进行一些基本操作。

  • Arrays类中的方法都是static修饰的静态方法,使用时可以直接使用类名进行调用,不用使用对象调用,但也可以用对象调用。

  • 具有以下功能:

    • 给数组赋值:fill()。
    • 对数组排序:sort(),升序。
    • 比较:equals(),比较是否相同。
    • 查找数组元素:binarySearch(),可以对有序数组进行二分查找法查找元素。
    • 打印数组中元素:toString()。
  • 查找API查看工具类的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值