我已經非常喜歡C++中的一些結構,並且我最近一直在將一些舊學校項目移植到java,但遇到了一些未解決的問題簡單的谷歌搜索......所以我想我會在這裏問:C++到java,語言等同性問題
在C++中我很喜歡Stringstream
,vector
,list
和dequeue
,但一直沒能找到足夠的文檔上任意的他們。當我嘗試使用Vector
時,netbeans告訴我它已被棄用,這是否意味着其他代碼佔據了它的位置?有沒有其他容器我應該使用?
謝謝!
我已經非常喜歡C++中的一些結構,並且我最近一直在將一些舊學校項目移植到java,但遇到了一些未解決的問題簡單的谷歌搜索......所以我想我會在這裏問:C++到java,語言等同性問題
在C++中我很喜歡Stringstream
,vector
,list
和dequeue
,但一直沒能找到足夠的文檔上任意的他們。當我嘗試使用Vector
時,netbeans告訴我它已被棄用,這是否意味着其他代碼佔據了它的位置?有沒有其他容器我應該使用?
謝謝!
對於Stringstream
可以使用java.io.ByteArrayOutputStream
C++的Vector<T>
是基本相同java.util.ArrayList<T>
爲list<T>
最接近的比賽將是java.util.LinkedList<T>
- 兩者都爲雙向鏈表實現的(如果你想要的是,雖然一個有序的元素集合,您應該使用更通用的接口,java.lang.List<T>
)
您也可以使用java.util.LinkedList<T>
爲您的實現deque<T>
的離子。 java.util.LinkedList<T>
實現隊列/堆棧所需的所有功能。
NetBeans告誡您012bd已被棄用的原因是因爲使用由Java Collections API引入的數據結構通常是一個更好的主意。在Vector<T>
的地方,你應該使用諸如java.util.ArrayList<T>
或java.util.LinkedList<T>
之類的東西。
對於矢量,列表和出隊等類別看看這個http://download.oracle.com/javase/tutorial/collections/index.html
您也可能會發現有趣的那些類:爲InputStream,OutputStream的,BufferedReader類,但是BufferedWriter和StringBuilder的。
如果我沒有錯,Vector甚至比ArrayList慢,因爲它是同步的。
你沒有錯。此外,同步是天真的,所以它實際上並沒有那麼有用。這就是爲什麼你應該總是使用像'Collections.synchronizedList()'或'CopyOnWriteArrayList'等更新的同步API。 – Bringer128
+1用於提及java.lang.List。值得理解的是,如何在Java中定義一個變量(列表),然後用您的首選實現(LinkedList ,ArrayList ) –
Chap
實例化您的答案非常感謝,我想我會給LinkedList一個旋轉! – HunderingThooves