vector
C++:vector
Java:Vector<Object>(线程安全) ArrayList<Object>
创建:
Vector<Integer> v=new Vector<Integer>();
ArrayList<Integer> v=new ArrayList<Integer>();
数组:
Vector<Integer> v=new Vector[N];
ArrayList<Integer> v=new ArrayList[N];
基本操作:
清空:
clear()
添加:
boolean add(Object o) //
void add(int index,Object o) //
boolean addAll(Collection o) //
boolean addAll(int index,Object o)
修改:
Object set(int index,Object o) //
遍历:
1. 使用size和get
2. 使用增强型访问
3. 使用Iterator it = list.iterator();
查询:
Object get(int index)
int indexOf(Object o) //找到第一个
int lastIndexOf(Object o) //找到最后一个
boolean isEmpty()
删除:
boolean remove(int index)
boolean remove(Obeject o)
- 二分查找实现indexOf()lastIndexOf()
//前提保证Vector<Integer>v 有序
void Init(){
Collections.sort(v);
}
public int indexOf(int x){
int l=0,r=v.size()-1,index=-1;
while(l<r){
int mid=(l+r)>>1;
if(v.get(mid)>=x) r=mid;
else l=mid+1;
}
if(v.get(r)==x) index=r;
return index;
}
public int lastIndexOf(int x){
int l=0,r=v.size()-1,index=-1;
while(l<r){
int mid=(l+r)>>1;
if(v.get(mid)<=x) l=mid;
else r=mid-1;
}
if(v.get(l)==x) index=l;
return index;
}