我已经非常喜欢C ++中的一些结构了,我最近一直在将一些旧的学校项目移植到java,但是遇到了一些难以通过简单的谷歌搜索解决的障碍......所以我想我会在这里问:
在C ++中,我非常喜欢Stringstream
,vector
,list
和dequeue
,但无法找到有关其中任何一个的充分文档。当我尝试使用Vector
时,netbeans告诉我它已被弃用,这是否意味着其他一些代码占据了它的位置?我应该使用其他容器吗?
谢谢!
答案 0 :(得分:5)
对于Stringstream
,您可以使用java.io.ByteArrayOutputStream
C ++的Vector<T>
与java.util.ArrayList<T>
list<T>
最接近的匹配是java.util.LinkedList<T>
- 两者都是双链接列表(尽管你想要的只是一个有序的元素集合,你应该使用更通用的接口,{ {1}})
您还可以使用java.lang.List<T>
来实施java.util.LinkedList<T>
。 deque<T>
实现了队列/堆栈所需的所有功能。
NetBeans告诉您java.util.LinkedList<T>
的原因已被弃用,因为使用Java Collections API引入的数据结构通常更好。在Vector<T>
地方,您应该使用Vector<T>
或java.util.ArrayList<T>
之类的内容。
答案 1 :(得分:1)
对于vector,list和dequeue以及其他Collections,请查看此http://download.oracle.com/javase/tutorial/collections/index.html
您可能还会发现这些类很有趣:InputStream,OutputStream,BufferedReader,BufferedWriter和StringBuilder。
答案 2 :(得分:0)
如果我没错,Vector甚至比ArrayList慢,因为它是同步的。