Array 数组

I. 简介

数组(array)是保存一系列相同数据的最基本工具。相比于容器(containers),它的功能少、不支持范型(generics),但优点在于插入、取出速度快。
虽然数组有着速度上的优势,但在实际开发中,永远优先考虑容器,因为容器的各项功能更多,使得开发更加快捷方便。在程序执行过慢的情况下,再考虑用数组替代容器。

II. 创建与特点

创建

一维数组

可创建primitive type 的数组,也可以创建包含object的数组。

int [] ints = new int [5]; // 包含5个数值为0的int 数组
String [] strings = {"Test", "Exam"}; // 包含Test、Exam 的String 数组
Object [] objects = new Object [5]; // 包含5个null 的Object 数组
多维数组

上述创建数组为一维,而多维数组也通过类似方式创建。

int [] ints_twoDimentional = new int [5][5]; // 创建5X5的二维int 数组
int [] ints_threeDimentional = new int [5][5][5]; // 创建5X5X5 的三维int 数组

特点

基本特性

数组的长度不可变。
数组中不可插入与数组类型不同的类型。(如在int 数组中不能插入string 类型)同时在编译时(compile time),编译器会自动找出不符合type-checking 的数组操作。

数组和范型

数组不支持范型;而容器支持。
同时需要指出的是,容器中的对象都为Object, primitive type 会被auto boxing 转为Object.

III. Arrays utils

复制数组

System.arraycopy() 用于复制数组;采用此方法的复制速度快于使用for 循环的速度。

int [] i = new int [7];
Arrays.fill(i, 47); // 将i 用47 填满
int [] k = new int [5];
Arrays.fill(k, 103);

// 将k 数组复制到 i 数组中去
System.arraycopy(k, 0, i, 0, k.length); // 第一个参数为被复制数组,第二个参数为被复制数组的复制项的起点,第三个位复制进数组,第四个参数为复制进数组的复制起点,第五个参数为复制终点。
比较数组

可使用Arrays.equals() 方法来比较两个数组。

数组排序

系统自带的Objects(Integer, String 等) 已经实现了Comparable<> 接口,可直接使用Arrays.sort(); 如为自己创建类,想要实现排序功能,需要手动实现Comparable<> 接口

另外一种方法为使用系统自带的Comparator 或自己重写的Comparator 作为第二个参数传入Arrays.sort() 中去。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值