Java编程思想-Chapter16-数组

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java编程思想-Chapter16-数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

虽是读书笔记,但是如转载请注明出处http://segmentfault.com/blog/exploring/
..拒绝伸手复制党


数组为什么特殊

数组和其它容器之间的区别有三方面:效率、编译期类型检查和保存基本类型的能力,但是由于有了泛型容器和自动包装机制,现在最主要的区别就是效率。ArrayList 效率低很多。
数组是一种效率最高的存储和访问对象引用序列的方式。

数组是第一级对象

初始化数组的2种方式:
1. 聚集初始化:

//aggregate inITialization  BerylliumSphere[] d = { new BerylliumSphere(),                          new BerylliumSphere(),                          new BerylliumSphere(),                          new BerylliumSphere()}; 
  1. 动态聚集初始化:
//dynamic initialization a = new BerylliumSphere[]{ new BerylliumSphere(), new BerylliumSphere()}; 

可以在任意位置创建和初始化数组对象 e.g.

hide(new BerylliumSphere[]{ new BerylliumSphere()) 
@H_777_79@返回一个数组

维数

new 来分配:int [][][] a = new int[2][2][4];
Arrays.deepToString输出多维数组
数组中构成矩阵的每个向量都可以具有任意的长度 -- 粗糙数组:
[[Sphere 1, Sphere 2], [Sphere 3, Sphere 4, Sphere 5, Sphere 6], [Sphere 7, Sphere 8, Sphere 9, Sphere 10, Sphere 11, Sphere 12, Sphere 13, Sphere 14]]

数组与泛型

创建测试数据

Arrays.fill() 只能用同一个值填充各个位置,或者是填充某个区域
数据生成器
Generator中创建数组,为了更灵活的创建更有意义的数组。

Arrays实用功能

Arrays 类有一套用于数组的静态方法(所有这些方法对各种基本类型和 Object 类而重载过):
方法说明equals()比较两个数组是否相等deePEquals()用于多维数组比较fill()填充数组sort()数组排序binarySeArch()在已经排序的数组中查找元素toString产生数组的 String 表示hashCode()产生数组的散列码asList()接受任意的序列或数组作为其参数,并转换为 List 容器复制对象数组:只是复制了对象的引用——而不是对象本身的拷贝。

数组元素的比较: comparable and comparator

数组排序:Arrays.sort(sa);
使用内置的排序方法,可以对任意的基本类型数组排序;也可以对对象数组排序,只要该对象实现了Comparable接口,或者具有相关联的Comparator:
Java标准库中的排序算法针对正排序的特殊类型进行了优化: 针对基本类型的快速排序;针对对象设计的“稳定归并排序”。所以无需担心排序的性能问,除非确实确定了排序不分是程序效率的瓶颈。

在已排序的数组中查找:Arrays.binarySearch()
int location = Arrays.binarySearch(a, r)
如果需要对没有重复元素的数组排序,可以使用TreeSet(保持排序顺序),或者LinkedHashSet(保持插入顺序)

脚本宝典总结

以上是脚本宝典为你收集整理的Java编程思想-Chapter16-数组全部内容,希望文章能够帮你解决Java编程思想-Chapter16-数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。