Java Android Vector类,我应该使用;新";或;清除();?
我正在创建一个游戏应用程序,你可以爬上“星星” 我希望我的向量对象能抓住最顶端的“星星” 因此,我的grapTopMostStars方法为它使用的向量对象调用.clear(),然后获取最顶端的星星 然而,我的好朋友告诉我,既然我真的不在乎矢量中以前的恒星,为什么不宣布新的矢量对象呢Java Android Vector类,我应该使用;新";或;清除();?,java,android,vector,Java,Android,Vector,我正在创建一个游戏应用程序,你可以爬上“星星” 我希望我的向量对象能抓住最顶端的“星星” 因此,我的grapTopMostStars方法为它使用的向量对象调用.clear(),然后获取最顶端的星星 然而,我的好朋友告诉我,既然我真的不在乎矢量中以前的恒星,为什么不宣布新的矢量对象呢 他听起来很有道理,但我很担心,因为我在手机上玩这个游戏,不知何故多次创建新实例会减慢我的应用程序的速度。clear内部调用removeAllElements,实现如下: 651 public sync
他听起来很有道理,但我很担心,因为我在手机上玩这个游戏,不知何故多次创建新实例会减慢我的应用程序的速度。
clear
内部调用removeAllElements
,实现如下:
651 public synchronized void removeAllElements() {
652 modCount++;
653 // Let gc do its work
654 for (int i = 0; i < elementCount; i++)
655 elementData[i] = null;
656
657 elementCount = 0;
658 }
651公共同步的void removelements(){
652 modCount++;
653//让gc完成它的工作
654表示(int i=0;i
迭代向量以将每个条目设置为null
肯定比创建新向量的开销更大
顺便说一句,如果可能的话,您应该将向量
替换为数组列表
。报告告诉我们:
从Java2平台v1.2开始,该类被改装为
实现List接口,使其成为Java
集合框架。与新的集合实现不同,
向量是同步的。如果不需要线程安全的实现,
建议使用ArrayList代替Vector
(线程安全的东西比不同步的非线程安全类慢。)您最好考虑替换
向量Ty!很高兴知道我需要使用ArrayList!