你这个循环是错的
  while(itr.hasNext())
      {
        ll=(list)itr.next();
        if(ll.i1==i)
        {
          break;
        }
        else
        {
          ll.i1=i;
          ll.str1="无";
        }
      }

解决方案 »

  1.   

    我给你改了一下import java.util.*;class list {
      public int i1;
      public String str1;
      public list() {  }
      public list(int i, String s) {
        i1 = i;
        str1 = s;
      }
    }public class Main {
      Vector vList = new Vector();
      public Main() {
        vList.addElement(new list(0,"str0"));
        vList.addElement(new list(4,"str4"));
        vList.addElement(new list(1,"str1"));
        vList.addElement(new list(6,"str6"));
        vList.addElement(new list(10,"str10"));    for(int i=0;i<=12;i++) {
          Iterator itr=vList.iterator();
          list ll=new list();
          boolean b = false;
          while(itr.hasNext())
          {
            ll=(list)itr.next();
            if(ll.i1==i)
            {
              b = true;
              break;
            }
          }
          if (!b) {
              ll.i1=i;
              ll.str1="无";
          }
          System.out.println("i1:"+ ll.i1 + "   " + "str:"+ll.str1);
        }
      }
      public static void main(String[] args) {
        Main main = new Main();
      }
    }你试一下
    记得加分哦
      

  2.   

    在java里参数的传递都是传引用的,也就是说传递的只是一个对该对象的引用,在方法里改变了这个对象的值那么就直接修改了实参!