在java中使用单for-each循环遍历多个列表

在java中使用单for-each循环遍历多个列表,java,foreach,iterator,java-7,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<Stri

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

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>();
static List dbName=new ArrayList();
静态列表dbServerName=newarraylist();
静态列表lDbName=newArrayList();
静态列表lServerName=newArrayList();
静态列表serverName=new ArrayList();
静态列表dbServerNameSecondary=newarraylist();
是否可以使用单个for-each循环迭代所有列表对象 如下

对于(dbName、dbServerName中的项…)

我想并行迭代,并将在下面的查询中获得的值放入其中

String drop=“drop table if exists”+hive\u db+“+”IB\u C3\u”+dbName+“\u”+dbServerName

是的,假设列表大小相同,您可以使用标准的
for
循环并行迭代它们:

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)
}
static List dbName=new ArrayList();
静态列表dbServerName=newarraylist();
静态列表lDbName=newArrayList();
静态列表lServerName=newArrayList();
静态列表serverName=new ArrayList();
静态列表dbServerNameSecondary=newarraylist();
//代码填充列表在这里
对于(int i=0;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()
}
公共类数据库{
私有字符串dbName;
私有字符串dbserver名称;
私有字符串lDbName;
私有字符串名称;
私有字符串serverName;
私有字符串dbServerNameSecondary;
//这里有接球手和接球手
}
静态列表数据库=新的ArrayList();
//这里是代码填充列表
用于(数据库:数据库){
//database.getDbName()
// ...
//database.getDbServerNameSecondary()
}

如果它们具有相同的长度,您可以创建for循环,在这里您可以增加索引数量,并在循环内部获取每个元素。您希望得到什么?有效地连接?可能的重复是否有理由不将DB对象表示为具有dbServerName等属性的简单类,然后有一个DB对象列表?我认为OP希望有值的连接,而不是并行迭代。但第二点肯定是正确的——将
对象
存储在并行数组中肯定是对象恐惧症的标志…@boristespider。这个问题在这一点上还不清楚。另一个答案显示了如何做到这一点,所以在这和那之间,OP的需求应该得到满足。@BoristheSpider我想做并行迭代,而不是concatenation@dataEnthusiast在这种情况下,我强烈建议您使用基于
对象的解决方案。如果这些确实是并行阵列,那么这完全不是面向对象的。