Array数组的用法

Array:

1.java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object.

2.数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合)

3.数组当中可以存储“基本数据类型”的数据,也可以存储“引用数据类型”的数据。

4.数组因为是引用类型,所以数据对象是堆内存当中(数组是存储在堆当中的)。

5.数组当中如果存储的是“Java对象”的话,实际上存储的是对象的“引用”(内存地址)。

6.数组一旦创建,在Java中规定,长度不可变。(数组长度不可变)

7.数组的分类:一维数组,二维数组,三组数组,多维数组,,,(一维数组较多,二维数组偶尔使用)

8.所有的数组对象都有length属性(java自带的),用来获取数组中元素的个数。

9.java中的数组要求数组中元素的类型统一,例:int类型只能存储int 类型

10.数组在内存方面存储的时候,数组中的元素内的内存地址(每一个元素都是有规则的挨着排列的)是连续的。数组实际上是一种简单的数据结构。

11.所有的数组都是拿“第一个小方框的内存地址”作为整个数组对象的内存地址。(数组中首元素的内存地址作为整个数据对象)

12.数组中每一个元素都是有下标的,下标从0开始,以1开始递增。最后一个元素的下标为:length-1

对数组中元素进行“存取”的时候,都需要通过下标来进行。

13.数组的优点:查询/查找/检索某个下标上的元素时效率极高。可以说是查询效率最高的一个数据结构。

   检索效率高的原因:①每一个元素的内存地址在空间存储上是连续的。②每一个元素类型相同,所占用空间大小一样。③知道第一个元素内存地址,知道每一个元素占用空间的大小,又知道下标,所以通过一个数学表达式就可以计算出某个下标上元素的内存地址。直接通过内存地址定位元素,所以数组的检索效率是最高的。 

          缺点:①由于为了保证数组中每个元素的内存地址连续,所以在数组随机删除/增加元素的时候,效率较低,因为随机增删元素会涉及到后面元素统一向前/向后位移的操作。②数组不能存储大数据量,因为很难找到特别大的连续的内存空间。

    注意:对于数组中最后一个元素的增删,是没有效率影响的。

14.定义/声明一维数组:

int[] array1;  
double[] array2;
boolean[] array3; 
String[] array4;
Object[] array5;

15.初始化一个一维数组:静态初始化一维数组、动态初始化一维数组。

   静态初始化语法格式:

int[] array={100,210,300,55};   
Object[] obj={new bObject(),new bObject(),new bObject()};

   动态初始化语法格式:                                       

 int[] array=new int[5];   //这里的5表示数组的元素个数;初始化一个5个长度的String类型数组,每个元素默认值0.                                                                         

 String[] names=new String[6];  //初始化6个长度的String类型数组,每个元素默认值null。

16.当创建数组的时候,确定数组中存储哪些具体的元素时,采用静态初始化方式。当创建数组的时候,不确定数组中存储哪些具体的元素时,采用动态初始化方式。

17.一维数组的遍历

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

18.二维数组的静态初始化和动态初始化

静态初始化:

int[][] arr={
                {1,3,2,},
                {22,34,44,55,},
                {4,5,7,8}
};
Object[][] arr={
               {new Object(),new Object()},
               {new Object(),new Object()},
               {new Object(),new Object(),new Object()}
};

动态初始化:

int[][] arr=new int[3][4];
Object[][] arr=new Object[4][4];
Animal[][] arr=new Animal[3][4];
Person[][] arr=new Person[2][3];
....

19.二维数组的遍历

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

20.main方法上“String[] args”参数的使用

21.数组的拷贝:system.arraycopy()方法的使用

     数组有一个特点:长度一旦确定,不可变。所以数组长度不够的时候,需要扩容,扩容的机制是:新建一个大数组,将小数组中的数组拷贝到大数组,然后小数组对象被垃圾回收。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值