C ++到java,语言等价问题

时间:2011-08-19 01:28:34

标签: java c++

我已经非常喜欢C ++中的一些结构了,我最近一直在将一些旧的学校项目移植到java,但是遇到了一些难以通过简单的谷歌搜索解决的障碍......所以我想我会在这里问:

在C ++中,我非常喜欢Stringstreamvectorlistdequeue,但无法找到有关其中任何一个的充分文档。当我尝试使用Vector时,netbeans告诉我它已被弃用,这是否意味着其他一些代码占据了它的位置?我应该使用其他容器吗?

谢谢!

3 个答案:

答案 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慢,因为它是同步的。