在Jdon.com里面看到的,覺得很值得借鑒
原文:http://www.jdon.com/jive/thread.jsp?forum=16&thread=302
看下面比較:

public List getUsers()
{
ResultSet rs = userDbQuery();
List retval = new ArrayList();

while (rs.next())
{
retval.add(rs.getString(1));
}
return retval;
}上面是個我們采取返回Collection后最常用的方法,將ResultSet中的用戶名加入List再返回,顯然這很耗費內(nèi)存。
使用Iterator返回:

public Iterator getUsers()
{
final ResultSet rs = userDbQuery();

return new Iterator()
{
private Object next;

public void hasNext()
{

if (next == null)
{

if (! rs.next())
{
return false;
}
next = rs.getString(1);
}
return true;
}


public Object next()
{

if (! hasNext())
{
throw new NoSuchElementException();
}
String retval = next;
next = null;
return retval;
}


public void remove()
{
throw new UnsupportedOperationException ("no remove allowed");
}
}
}
這個Javabean只是做了一個指針傳遞作用,將調(diào)用本Javabean的指針傳遞到ResultSet,這樣既提高了效率,節(jié)約了內(nèi)存,又降低了偶合性,這是堪稱中間件典型的示范。
原文:http://www.jdon.com/jive/thread.jsp?forum=16&thread=302
看下面比較:












使用Iterator返回:












































