我创建了多个列表,如下所示
static List<String> dbName = new ArrayList<String>();
static List<String> dbServerName = new ArrayList<String>();
static List<String> lDbName = new ArrayList<String>();
static List<String> lServerName = new ArrayList<String>();
static List<String> serverName = new ArrayList<String>();
static List<String> dbServerNameSecondary = new ArrayList<String>();
是否可以使用单个for-each循环遍历所有列表对象 如下所示
for(dbName,dbServerName ....中的项目)
我想平行迭代并将获得的值放在下面的查询中
String drop =&#34; Drop table if exists&#34; + hive_db +&#34;。&#34; +&#34; IB_C3 _&#34; + dbName +&#34; _&#34; + DBSERVERNAME;
答案 0 :(得分:2)
是的,假设列表大小相同,您可以使用标准for
循环在 parallel 中迭代它们:
static List<String> dbName = new ArrayList<String>();
static List<String> dbServerName = new ArrayList<String>();
static List<String> lDbName = new ArrayList<String>();
static List<String> lServerName = new ArrayList<String>();
static List<String> serverName = new ArrayList<String>();
static List<String> dbServerNameSecondary = new ArrayList<String>();
// code filling lists here
for (int i = 0; i < dbName.size(); i++) {
// dbName.get(i)
// ...
// dbServerNameSecondary.get(i)
}
但是,如果列表大小相同,则建议使用Java的面向对象功能强烈。这意味着为值创建一个类。
public class Database {
private String dbName;
private String dbServerName;
private String lDbName;
private String lServerName;
private String serverName;
private String dbServerNameSecondary;
// getters and setters here
}
static List<Database> databases = new ArrayList<>();
// code filling list here
for (Database database : databases) {
// database.getDbName()
// ...
// database.getDbServerNameSecondary()
}