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 数组的比较
使用equals16.7.2 数组元素的比较
程序设计的基本目标是:"将保持不变的事物与会发生改变的事物相分离",而这里,不变的是通用的排序算法,变化的是各种对象相互比较的方式,因此不是将比较不同的代码编写成不容的子程序,而是使用策略设计模式.通过使用策略,可以将"会发生变化的代码"封装在单例的类中(策略对象),java有两种方式,一个是实现Comparable,一种是创建Comparator实现(一般为匿名实现)