Java中std :: vector的等价物?
在Java中,与std :: vector最接近的是什么? 我的意思是,这个类可以将T引入其构造函数,然后是pushBack,popBack(),并存储在连续内存(不是链表)中。
谢谢
数组列表
尽管操作名称有点不同,但所有内容都存储在数组(“连续内存”)内部。
更多关于Java中的列表实现
关于generics
编辑
Helper Method在他的回答中也提到了有用的类(虽然不完全等同于C ++ Vector)。
如果你需要Stackfunction,那可能就是ArrayDeque 。
不要像其他人建议的那样使用Stack类。
您可能正在寻找ArrayDeque
支持列表两端的推/弹样式访问的ArrayDeque
。
避免 Stack
和Vector
– 这些是同步的,这通常意味着无意义的开销。
ArrayList
也没关系; 但是,您需要实现自己的(普通)pop方法,因为它本身不提供它。 ArrayList
允许ArrayDeque
缺少的索引访问。
您正在寻找ArrayList吗?
ArrayList l = new ArrayList
所以你可以有一个任何列表(在<>之间定义)。
您可以使用ArrayDeque
,它不支持随机访问,但支持Deque
(双端队列)方法
我认为这是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()
Java有支持push和pop的Stack。 ( http://download.oracle.com/javase/6/docs/api/java/util/Stack.html )
你需要的只是一个java.util.ArrayList
你可以查看http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html中的文档。
基本上是一个使用Array实现的List,其中引用存在于连续的内存块中。
我建议与这样的接口变量结合使用: List
因此,如果您决定,可以将实现更改为java.util.LinkedList
或其他。