错误观点:为什么使用数组而不使用ArrayList等容器类

错误观点:为什么使用数组而不使用ArrayList等容器类
效率和类型。
3.2.1 效率:
对于Java 来说要想保存和随机访问一系列对象实际是对象引用效率最高的方法莫过于数组。
3.2.2 类型:
Java标准库中的容器类都把对象当作没有具体类型那样对待,换言之它们将其当作Object 类型处理。Object 类型是Java 中所有类的根类,从某种角度看这种处理方法是非常合理的,我们只需构建一个容器然后所有Java 对象都可进入那个容器。原始数据类型除外,可用Java 的基类型封装器类将其作为常数置入容器或自建一个类把它们封装到里面当作可变值进行对待。这再一次体现出数组相较于普通容器的优越性,创建一个数组时可让它容纳一种特定的类型。这意味着可进行编译时间的类型检查防范自己设置了错误的类型或者错误地提取了一种类型,而不是运行时的Exception。

这是写给初学者的谎言,尽量使用Collection,保证你的代码OO风格,如果过多使用数组,代码鲁壮性不够,稳定性差;易读性更难。不能因为这一点性能而破坏设计。

在不破坏设计的前提下追求最大性能。


3.2.2 类型

 JAVA5.0通过范性实现集合存储特定类型

这好像是《24天学会Java》这类书籍中,也是C++程序员乐意看到的结论,数组是《ThinKing in java》津津乐道的话题。《ThinKing in java》只适合C++程序员转型学习。

数组现在和基本类型int 或String一样,一般作为对象字段使用,但是就是在这个层次,在方便性方面还不如List。

JDK早就应该消灭数组了,喊了这么多年,SUN不下手,尽搞些双刃剑的东西,然后试图靠模式来纠正,坏了模式的名声。

ArrayList代码那也需要重写了,因为它也是用数组实现的。
看书的名字就不是啥好玩意。这种东西要辩证的看,放到具体环境,有些时候为了效率是要牺牲一下代码的优雅型。

数组与ArrayList可以说都是一种容器,但在对象操控上数组远不及ArrayList灵活,虽然数组也可以实现ArrayList所实现的,但在工程项目中,数组没有ArrayList那样大气,换句话说,50公斤级的拳击手和150公斤级的拳击手都是拳击手,但却不是一个重量级的!

同意blueoxygen的观点

不知道LZ说的是不是真的,不过我是不喜欢数组更喜欢ArrayList的,修改方便也不会出现数组溢出的异常