Collection.Iterator,ArrayList,三者是一个什么样关系?有时候返回一个ArrayList实体给Collection,然后利用Iterator迭代Collection,就可重构Collection中的实体,不知道是什么原因?

解决方案 »

  1.   

    Collection->List->ArrayList&LinkedList如果向上转型当然可以吧 
    应该是什么东西都能放进去 但是取出来的时候应该进行转型
      

  2.   

    然后利用Iterator迭代Collection,就可重构Collection中的实体,不知道是什么原因?>>>
    能描述一下你这里所谓的“重构”是什么嘛?
    最好用代码说明
      

  3.   

    假设数据库存在一个关系,
    Person(person_id,person_name,person_age),即ID,用户名,年龄。
    我现在将它映射为一个Entity Bean (BMP),在Home接口 的这样一个方法
    Collection findByAge(int age) //即找相同年龄的人的集合
    我在Bean中实现该方法
    Collection ejbFindByAge(int age){
    ArrayList a = new ArrayList();
    下面我执行查询,并返回一个结果集ResultSet rs
    然后我将personId加入到ArrayList中去,注意我存放的是person_id,是字符串型。
    while(rs.next()){
    a.add(rs.getString(“peson_id”);
    }
    return a;
    }最后我在客户端是这样找到Person远程对象的,
    PersonHome ph = (PesonHome)context.lookup(“PersonBean的JNDI名”);
    Collection col = ph.findByAge(20)//找20岁的所有人
    Iterator it = col.iterator();
    while(it.hasNext()){
    Person per = (Person) it.next()//???这地方我就不明白了,为什么可以将it中的对象重构成Person,it中不是存放的是Person的主键吗,是字符串呀?
    }
      

  4.   

    Person  per  =  (Person)  it.next()//???这是强制转换,按我的理解就是只是将主键给该PersonEJB对象,然后由EJB容器调用ejbLoad,ejbStore实现与DB同步,