我已经非常喜欢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