使用java

时间:2016-02-15 14:48:24

标签: java foreach iterator java-7

我创建了多个列表,如下所示

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;

1 个答案:

答案 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()
}