持有多个对象-数组

当需要持有多个对象的时候,我们可以选择的方式有数组和集合。

首先来看一个有关于数组的一些基本概念

  • 数组与其他容器的区别在于:效率、类型和持有基本类型的能力。
  • 考虑到效率和类型检查应该尽量使用数组。
  • 数组是一个引用,引用了堆上的一系列对象。
  • 大小固定。如果需要改变大小只能是新建一个数组,然后拷贝数组到新的数组中,ArrayList就是采用的这种方式。
  • 数组能够持有基本类型,而其他容器类只能够持有包装之后的类。

数组的声明与初始化

声明可以使用这样的方式

int[] a = new int[1];
int[][] b = new int[1][];     必须指定行数,而每一行放什么可以暂时不指定。

初始化的时候应该是如下的语法:

int[] d = new int[]{1,2,};// 注意最后一个逗号可有可无。
int[][] e = new int[][]{new int[1],new int[1]};
除了这样的初始化方法之外,还有就是使用下标进行初始化,另外还有默认初始化,引用为Null,其他为0,boolean为false

Arrays类

为了更好的使用数组,java还提供了一个工具类Arrays,来辅助数组进行工作。

fill() 填充数组,但是只能够把整个数组都填充成一个值。
equals()比较两个数组是否相等,是两个数组的个数和每个元素的equals()都返回true,才返回true。
asList()。可以接受任意的数组,转变为List容器。
sort()排序。
有两种,一种是数组中的元素必须是实现了Comparable的接口,这样就能够利用回调技术进行排序,如下:

还有一种方式是传入一个实现了Comparable接口的对象。这两种方式都是策略模式的一种表现方式。如下:

 

binarySearch() 排序之后才能够使用binarySearch()进行查找。这是一种比较高效的查找。

System.arraycopy()

用于进行数组的复制,具体的调用方式为:System.arraycopy(数组源,数组源开始复制的偏移量,目标数组,目标数组的变异量,复制的个数)

 

数组因为相对于其他容器来讲能够持有基本类型,还拥有比较高的效率,因此在能够确认对象个数的情况下,都应该使用数组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值