Java集合之Vector

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;       
}