Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的foreach:使用计算iterable对象的语句是否比在循环中使用变量更糟糕?_Java_Loops_Foreach - Fatal编程技术网

Java中的foreach:使用计算iterable对象的语句是否比在循环中使用变量更糟糕?

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);

在使用Java和JDBC for SQL Server进行对象映射时,我想知道是否要创建一个变量来保存返回select语句的值,或者是否可以将该语句放入foreach循环中

我已经发布了完整的函数,但问题只是关于foreach循环。这两种选择对我都有好处,但我想知道在效率方面是否存在任何差异,或者是否存在第一种可能失败的情况

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;
}