Java中的foreach:使用计算iterable对象的语句是否比在循环中使用变量更糟糕?
在使用Java和JDBC for SQL Server进行对象映射时,我想知道是否要创建一个变量来保存返回select语句的值,或者是否可以将该语句放入foreach循环中 我已经发布了完整的函数,但问题只是关于foreach循环。这两种选择对我都有好处,但我想知道在效率方面是否存在任何差异,或者是否存在第一种可能失败的情况Java中的foreach:使用计算iterable对象的语句是否比在循环中使用变量更糟糕?,java,loops,foreach,Java,Loops,Foreach,在使用Java和JDBC for SQL Server进行对象映射时,我想知道是否要创建一个变量来保存返回select语句的值,或者是否可以将该语句放入foreach循环中 我已经发布了完整的函数,但问题只是关于foreach循环。这两种选择对我都有好处,但我想知道在效率方面是否存在任何差异,或者是否存在第一种可能失败的情况 public static List<User> UserList() { BD miBD = new BD(BD_SERVER,BD_NAME);
public static List<User> UserList()
{
BD miBD = new BD(BD_SERVER,BD_NAME);
ArrayList<User> list = new ArrayList<User>();
for(Object[] tuple: miBD.Select("SELECT name,password FROM tUser;"))
{
String id = (String)tuple[0];
String p = (String)tuple[1];
User u = new User(id,p);
list.add(u);
}
return list;
}
publicstaticlist用户列表()
{
BD miBD=新BD(BD_服务器,BD_名称);
ArrayList=新建ArrayList();
对于(对象[]元组:miBD.Select(“从tUser中选择名称、密码;”)
{
字符串id=(字符串)元组[0];
字符串p=(字符串)元组[1];
用户u=新用户(id,p);
增加(u);
}
退货清单;
}
或
List tupleList=miBD.Select(“从tUser;中选择名称、密码”)
for(对象[]元组:元组列表)
{
字符串id=(字符串)元组[0];
字符串p=(字符串)元组[1];
用户u=新用户(id,p);
增加(u);
}
返回列表a;
}
哪个更适合使用?就性能而言,它们完全相同
第一个变体短了一行,因此请继续使用。使用您认为可读性最好的变体。他们做同样的事情。
List<Object[]> tupleList = miBD.Select("SELECT name,password FROM tUser;")
for(Object[] tuple: tupleList)
{
String id = (String)tuple[0];
String p = (String)tuple[1];
User u = new User(id,p);
list.add(u);
}
return lista;
}