| 在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再返回,显然这很耗费内存。
使用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只是做了一个指针传递作用,将调用本Javabean的指针传递到ResultSet,这样既提高了效率,节约了内存,又降低了偶合性,这是堪称中间件典型的示范。

luckyrobbie 2006-03-15 16:56
|