import java.util.Vector;public class test {
  private String word="";
  private int =0;
  
  public test(){}
  public test(String word,int ){
    this.word=word;
    this.=;
  }
  public String getWord(){
    return word;
  }
  public int getMark(){
    return ;
  }
  
  public static void main(String args[]) {
    test t=new test();
    Vector v = new Vector();
    char s = 'A';
    String[] p = {"B","D","G","B","K","B"};    for (int i = 1; i <= 26; i++) {
      v.add(new test(s+"",0));
      s = (char) ( (int) s + 1);
    }
    
    for(int i=0;i<v.size();i++){
      t=(test)v.get(i);
      for(int j=0;j<p.length;j++){
        if(p[j].equals(t.getWord())){
          if(t.getMark()==0){
            v.setElementAt(new test(t.getWord(),1),i);
          }
          if(t.getMark()==1){
            //为什么下面一行没有插入进去?
            v.insertElementAt(new test(t.getWord(),1),i);
          }
        }
      }
    }
    for(int i=0;i<v.size();i++){
      t=(test)v.get(i);
      System.out.println(t.getWord()+" , "+t.getMark());
    }
  }
}谁能告诉我上面的错在哪?

解决方案 »

  1.   

    我把我的意思说一下吧
    有一个Vector,初始值为 v(A,0),(B,0),(C,0)....,(Z,0),有一个数组p[]={"B","D","B","E","B"},
    比较v中的word和p[i],如果相等则,{1。如果=0,则把v中的=1;2。如果=1,刚在v的后面插入一条数据(p[i],1)其中=1},其结果大致如下,A,0
    B,1
    B,1
    B,1
    C,0
    D,1
    E,1
    F,0
    G,0
    ...
    Z,0
      

  2.   

    是啊。要怎么样写才能做到
    A,0
    B,1
    B,1
    B,1
    C,0
    D,1
    E,1
    F,0
    G,0
    ...
    Z,0
    的结果呢?
      

  3.   

    if(t.getMark()==1){
         //为什么下面一行没有插入进去?
    前面加句:t=(test)v.get(i);应该就可以了  
        insertElementAt()这个方法最好别用,效率太低了,要插入元素的话用LinkedList
      

  4.   

    哎。。确实是死循环,那我试试用LinkedList来写,谁要是有好方法可以贴出来啊。先谢谢了。
      

  5.   

    import java.util.Vector;public class test {
      private String word="";
      private int =0;
      
      public test(){}
      public test(String word,int ){
        this.word=word;
        this.=;
      }
      public String getWord(){
        return word;
      }
      public int getMark(){
        return ;
      }
      
      public static void main(String args[]) {
        test t=new test();
        Vector v = new Vector();
        char s = 'A';
        String[] p = {"B","D","G","B","K","B"};     for (int i = 1; i <= 26; i++) {
          v.add(new test(s+"",0));
          s = (char) ( (int) s + 1);
        }
        
        for(int i=0;i<v.size();i++){
          t=(test)v.get(i);
          if(t.getMark() == 1)
           continue;
          int pos = -1;
          for(int j=0;j<p.length;j++){
            if(p[j].equals(t.getWord())){
              if(t.getMark()==0){
                v.add(i+1,new test(t.getWord(),1));
                if(pos<0) pos = i;
              }
            }
          }
          if(pos>0)
           v.remove(pos);
        }
        for(int i=0;i<v.size();i++){
          t=(test)v.get(i);
          System.out.println(t.getWord()+" , "+t.getMark());
        }
      }
    }
    //最后附句,vector性能不是很好。最好用LinkedList做。
      

  6.   

    好的。多谢superman421(38度的雪)