Java中的数组

  在Java中,数组是一组数据的集合,数组是Java对象,Java中有三种引用类型,分别引用类实例,接口类的实例以及数组对象。

  1.创建数组的步骤:

   (1)声明一个数组类型的引用变量;

   (2)用new语句构造数组的实例,new的作用是为数组分配内存,并为数组中的每一个元素赋予默认值

   (3)初始化,为数组的每一个元素设置合适的初始值。

   1.1 .数组变量的声明

     声明数组变量时,不能指定数组的长度;

   1.2.数组对象的创建

     使用new语句创建数组对象,new语句的执行步骤

      a.在堆区为数组分配内存空间

      b.为数组中的每一个元素赋予默认值

      c.返回数组对象的引用

      使用new语句创建数组对象时,需要指定数组长度,但是如果在创建对象时对数组进行初始化,则不需要指定数组的长度

      在声明数组变量时不能够指定数组的长度,而在创建数组对象时一定要指定数组的长度

    

      因为数组是Java对象,故数组之间可以相互赋值,而且数组变量可以引用其他的数组对象。

 

     1.3 数组的初始化

           可以在程序中显式地将数组初始化

    2. 数组元素的访问

        2.1 数组变量在声明之后,一定要引用一个数组对象,这样才能够访问数组的元素; 

        2.2 数组中可以保存基本类型,也可以保存引用类型,保存引用类型时,存放的是对象的引用,而不是对象本身

            

       打印的结果是abc,数组可以作为方法的参数或者返回值

       将数组作为参数传入方法中时,传入的是数组的引用,在方法中对数组元素的修改可以直接修改数组,而如果将基本类型传入方法,当方法执行结束,代表方法的栈帧从栈中弹出,在方法中对临时变量进行的操作不会保存

 

     3.数组的工具类

        数组的工具类提供一系列静态方法,对数组对象进行操作

 

     4.哈希表

      (1)一般的数组中,元素在数组中的索引位置比较随机,元素的取值和元素的位置关系之间不存在确定的关系,因此,在数组中查找特定值时,需要把查找之和一系列的元素进行比较,这类查找方法建立在“比较”的基础上,查找的效率依赖于产找过程中进行的比较次数。

      (2)如果数组中元素的值和位置存在确定的对应关系,这样的数组称为哈希表,元素的值value和它在数组中的索引位置index有一个确定的对应关系hash()

      (3)hash()函数根据元素值获取哈希码,哈希码在以下两种情况下不能够作为index

              a.哈希码过大

              b.多个元素具有相同的哈希码

      (4)java.lang.Object类中定义了hashCode()方法,返回对象的哈希码,在Object类本身的hashCode()中,java.lang.Object类中有定义hashCode()方法,在这个方法中,把对象的内存地址转换为整数类型的哈希码,由于每个对象都有唯一的内存地址,因此每个对象都有唯一的哈希码,用户定义的hashCode()方法可以覆盖Object的hashCode()方法

      哈希表是一种特殊的数组,它的数组元素和index有确定的对应关系,查找某个元素时,不是通过比较的方法,而是通过哈希码确定index,确定数组的存储位置

      5.数组的使用类  Arrays

        java.util.Arrays

       (1)提供一系列的静态方法,用于操纵数组

             a. equals()比较两个数组是否相同,只有两个数组的元素数目相同,并且对应位置的元素也相同的时候,数组才相同;

             b. fill()  向数组中填充元素

             c. sort() 把数组中的元素按照升序排列

             d. binarySearch() 按照二叉查找算法,查找数组中值与给定数据相同的元素,调用该方法时,需要保证数组按照升序排列;

             e.toString() 放回包含数组中所有元素信息的字符串

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值