Java中std :: vector的等价物?

时间:2010-09-16 21:44:06

标签: java

Java中与std :: vector最接近的是什么?我的意思是,这个类可以将T引入其构造函数,然后是pushBack,popBack(),并存储在连续内存(不是链表)中。

由于

9 个答案:

答案 0 :(得分:36)

ArrayList
一切都存储在数组(“连续内存”)内部,虽然操作名称有点不同。

A bit more about list implementations in Java
And about generics

修改
帮助方法在他的回答中也提到了有用的类(虽然不完全等同于C ++ Vector)。

答案 1 :(得分:8)

如果你需要Stack功能,那可能是ArrayDeque

不要像其他人建议的那样使用Stack课程。

答案 2 :(得分:3)

您正在寻找ArrayList吗?
ArrayList l = new ArrayList<String>();
因此,您可以列出任何内容(在&lt;&gt;之间定义)。

答案 3 :(得分:2)

您可能正在寻找能够有效支持列表两端的推送/弹出式访问的ArrayDeque

避免 StackVector - 这些是同步的,这通常意味着无意义的开销。

ArrayList也没问题;但是,您需要实现自己的(普通)pop方法,因为它本身不提供它。 ArrayList确实允许ArrayDeque缺少索引访问权限。

答案 4 :(得分:1)

您可以使用ArrayDeque,它不支持随机访问,但支持Deque(双端队列)方法

答案 5 :(得分:1)

我认为这是LinkedList

vector (c++)   <===========> linkedlist(java) 
v.front()      <===========> l.peekFirst() 
v.back()       <===========> l.peekLast()  
v.push_back(x) <===========> l.add(x) 
v.pop_back()   <===========> l.pollLast() 

答案 6 :(得分:0)

答案 7 :(得分:0)

答案 8 :(得分:0)

您需要的是java.util.ArrayList<T>您可以查看http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

中的文档

基本上是一个使用数组实现的List,其中引用存在于连续的内存块中。

我建议与这样的接口变量结合使用:List<String> stringList = new ArrayList<String>(); 因此,如果您决定,可以将实施更改为java.util.LinkedList<T>或其他。