我正在創建一個遊戲應用程序,您爬上「星星」。Android Vector類,我應該使用「新」還是「清除()」?
我想讓我的矢量對象保持最頂級的「星星」。
因此,我的grapTopMostStars方法調用.clear()爲它使用的矢量對象,然後抓住最上面的星星。
但是,我的好朋友告訴我,爲什麼不直接聲明新的Vector對象,因爲我並不在乎Vector中的以前的星星。
他聽起來有效,但我擔心,因爲我在移動設備上製作這款遊戲,多次創建新實例會減慢我的應用程序。
我正在創建一個遊戲應用程序,您爬上「星星」。Android Vector類,我應該使用「新」還是「清除()」?
我想讓我的矢量對象保持最頂級的「星星」。
因此,我的grapTopMostStars方法調用.clear()爲它使用的矢量對象,然後抓住最上面的星星。
但是,我的好朋友告訴我,爲什麼不直接聲明新的Vector對象,因爲我並不在乎Vector中的以前的星星。
他聽起來有效,但我擔心,因爲我在移動設備上製作這款遊戲,多次創建新實例會減慢我的應用程序。
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 }
迭代的每一個項設置爲null
矢量不僅僅是創建一個新的矢量肯定更多的開銷。
順便說一下,如果可能的話,您應該用代替Vector
。該Javadoc告訴我們:
從Java 2平臺v1.2,這個類被改造爲 實現List接口,使它成爲Java的 Collections Framework的成員。與新的收集實現不同, 矢量是同步的。如果不需要線程安全的實現,建議使用ArrayList來代替Vector。
(線程安全的東西比不同步的非線程安全類慢。)
泰!很高興知道我需要使用ArrayList! – BlueBug
您應更好地被考慮更換'VECTOR' – Kai