java.util.Vector
方法主要有
void add(int index, Object element) 
void setElementAt(Object obj, int index) 
Object elementAt(int index) 
void removeElementAt(int index) 
int size()

解决方案 »

  1.   

    List
    查看一下帮助。很全的。^_^
      

  2.   

    因为我要在线程中遍历List,原来是使用for(int i=0;i<List.size;i++){ List.ge(i);}遍历的,不行,因为在遍历过程中可能会出List.size中的值显示为有,但到List.get(I)的时候此值可能已经被另外一个线程修改掉而变为空,尤其是到最后一个,
    后来改用Iterator, 发现修改Vector时使用的Iterator将会抛错,程序不能继续下去,还有Vector虽然时线程安全的,但是我在多线程中需要遍历的时候,我不能锁定整个Vector
    ,因为其他线程时刻有可能修改Vector的数据,而且应该时修改优先的。
    希望高手帮助。
      

  3.   

    多线程中用Vector会保证线程安全.Iterator会报错?贴出代码看看
      

  4.   

    这个是个简化的public static void main(String[] args) {
    final LinkedList l = new LinkedList(); Thread t1 = new Thread() {
    public void run() {
    for (int i = 0; i < 10000; i++) {
    l.add("" + i);
    System.err.println("" + i);
    }
    }
    }; Thread t2 = new Thread() {
    public void run() {
    while (true) { Iterator t = l.iterator();
    for (; t.hasNext();) {
    System.err.println("end:" + t.next().toString());
    }
    }
    } };
    t1.start();
    t2.start();

    另外 Vector是安全的,但Iterator不是安全的,如果Vector改变Iterator就会抛错,上面将LinkedList换成为Vector也会出现同样的错误的。
      

  5.   

    synchronized(youThread){
      //把你需要单线程模式的操作,放到这里
    }
    eg.:
    Thread t1 = new Thread() {
    public void run() {
                                         synchronized(this){
    for (int i = 0; i < 10000; i++) {
    l.add("" + i);
    System.err.println("" + i);
    }
                                         }
    }
    };
      

  6.   

    我的LinkedList是我多个Thread的操作对象,多个线程都需要对LinkedList进行读写操作,,
    那样同步不行的,,我刚才试过了,Iterator依然会报错的,