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

C++ to java, language equivalency questions

本文关键字:语言 等价问题 java c++      更新时间:2023-10-16

我越来越喜欢c++中的一些结构,最近我一直在将一些老派项目移植到java中,但是遇到了一些简单的google搜索无法解决的问题……所以我想我应该在这里问:

在c++中,我非常喜欢Stringstream, vector, listdequeue,但是还没有找到关于它们的足够的文档。当我尝试使用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告诉你Vector<T>被弃用的原因是因为使用Java Collections API引入的数据结构通常是一个更好的主意。在Vector<T>的位置,您应该使用java.util.ArrayList<T>java.util.LinkedList<T>

对于vector, list和dequeue以及其他集合,请查看此http://download.oracle.com/javase/tutorial/collections/index.html

您可能还会发现这些类很有趣:InputStream, OutputStream, BufferedReader, BufferedWriter和StringBuilder。

如果我没弄错的话,Vector甚至比ArrayList还要慢,因为它是同步的。