java编程思想笔记16-数组



16.1 数组为什么特殊
数组与其他种类的容器之间的区别有三个方面:效率,类型和保存基本类型的能力.在java中数组是一个效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常快速.但是为这种速度所付出的代价是数组对象的大小被固定,并且在其声明周期里不可改变.

随着自动装包机制的出现,容器已经与数组几乎一样地运用于基本类型中了.数组唯一的优势就是效率了.然而需要解决一般化的问题,数组往往不能满足我们的需求,因此往往你会选择使用容器.
16.2 数组是第一级对象
初始化数组的各种方式
16.3 返回一个数组
int[] arr={1,23};
16.4 多维数组
多维数组的创建和遍历方式.
16.5 数组与泛型
通常,数组与泛型不能很好的结合.擦除会移除参数类型信息,而数组必须直到它们所持有的确切类型,以强制保证类型的安全.

16.6 Arrays的实用功能
16.7 复制数组
	int[] src = {1,2,3,4,5,6,7};
	int[] dest = new int[3];
	System.arraycopy(src,2,dest,0,3);
	System.out.println(Arrays.toString(dest));

16.7.1 数组的比较
使用equals
16.7.2 数组元素的比较
程序设计的基本目标是:"将保持不变的事物与会发生改变的事物相分离",而这里,不变的是通用的排序算法,变化的是各种对象相互比较的方式,因此不是将比较不同的代码编写成不容的子程序,而是使用策略设计模式.通过使用策略,可以将"会发生变化的代码"封装在单例的类中(策略对象),

java有两种方式,一个是实现Comparable,一种是创建Comparator实现(一般为匿名实现)
16.7.3 数组的排序
冒泡排序与选择排序
16.7.5 在已排序的数组中查找
16.8 总结
在使用java编程时,应该优先选择容器而不是数组.只有证明了性能称为了重大问题(并且切换到数组能有所帮助).
问题:如果java的设计者们能够从头再来,它们是否会在java语言中设计基本数据类型和低级数组?如果当初抛弃它们,java也许就成了真正的纯面向对象语言( 不管人们如何宣传,java仍然不是纯面向对象语言,而原因正是这些低级的绊脚石).最初有关效率的论点总是很吸引人,但是随着事件的推移,我们看到了这种思想的背道而驰,向着使用容器这类高级构件的方向的演化.






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值