在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在这种情况下,我强烈建议您使用基于对象的解决方案。如果这些确实是并行阵列,那么这完全不是面向对象的。