【发布时间】:2012-08-20 03:26:59
【问题描述】:
我正在构建一个堆数据结构,但让我发疯的部分是检查空子值。
我正在使用一个向量,我正在比较一个父母和一个孩子,但如果只有一个孩子,程序就会崩溃,因为类似
vectorObject.get(i) //i'th element doesn't exist
将返回异常。
我无法使用类似的东西检查 null 元素
if (vectorObject.get(i) == null)
既然运行 get() 方法会自动中断程序,那么如何在没有一些难以理解的怪异黑客攻击的情况下实际检查不存在的元素??
【问题讨论】:
-
来自the Javadoc 的注释:“与新的集合实现不同,Vector 是同步的。如果不需要线程安全实现,建议使用 ArrayList 代替 Vector。 "
-
谢谢。但是我不会也遇到与 ArrayList 相同的问题吗?
-
这只是一般性的建议,而不是针对您的问题的具体答案。我实际上建议不要使用
Vector,即使在多线程程序中也是如此。相反,ArrayListdoc 建议在多线程环境中使用Collections.synchronizedList。 -
谢谢,我知道,这是为了我自己的算法技能,而不是生产代码。另外,我不明白反对票..我认为这是一个完全正常的问题。在 SO 上获得任何积分都已经够难了..sigh.
-
投反对票的不是我——我也不明白。我仍然建议将您的
Vector更改为ArrayList只是为了养成使用正确数据结构的习惯。