Java数组

P434)数组硕果仅存的有点就是效率。length是数组的大小,而不是实际保存的元素个数。

 

P378)对于在泛型中创建数组,使用Array.newInstance()是推荐的方式。

 

P437)Java SE5的Arrays.deepToString()方法可以将多维数组转换为多个String。

 

P441)泛型容器总是比泛型数组更好的选择。只有在有已证明性能成为问题(并且切换到数组对性能有所提高)时,你才应该将程序重构为数组。

 

P450)Arrays实用功能

equals(),deepEquals()(用于多维数组),fill(),sort(),binarySearch()在已排序的数组中查找元素(二分查找?)。

 

P456)如果找到了目标,Arrays.binarySearch()产生的返回值大于或等于0,否则,它产生负返回值,表示若要保持数组的排序状态次目标元素所应该插入的位置。这个负值的计算方式是:

-(插入点)- 1

“插入点”是指,第一个大于查找对象的元素在数组中的位置,如果数组中所有的元素都小于要查找的对象,“插入点”就等于a.size()。

如果数组包含重复元素,则无法保证找到的是这些副本中的哪一个。搜索算法确实不是专为包含重复元素的数组设计的。

 

P451)复制数组:Java标准库提供有static方法System.arraycopy(),用它复制数组比用for循环复制块很多。然而,如果复制对象数组,那么只是复制了对象的引用——而不是对象本身的拷贝。这被称作浅复制。同事它不会执行自动包装和自动拆包,两个数组必须具有相同的确切类型。

posted @ 2017-06-22 22:13  TooLateToLearn!  阅读(121)  评论(0编辑  收藏  举报