我是Java的初学者。我有3个ArrayLists,并且所有ArrayLists都包含与特定主题相关的数据,因此具有相同的长度。我想遍历数组并执行一些操作,如下所示:
public void example(){
ArrayList<Long> ID = new ArrayList<Long>;
ArrayList<Integer> AcNo = new ArrayList<Integer>;
ArrayList<Integer> Vnum = new ArrayList<Integer>;
//get ID and AcNo from user, compare it in the ArrayList, get the corresponding Vnum
// for the Vnum from previous step, compare it with the next Vnum and get corresponding ID and AcNo until some *condition* is satisfied.
}
我如何用Java做到这一点?我看到了Iterator的例子,但我不确定这样做的正确方法!请帮忙。
答案 0 :(得分:2)
如果所有三个列表的长度相同,则使用带索引的 for loop 对其进行迭代。相同的索引代表三个列表中每个列表中的相同用户:
for (int i=0; i<ID.size(); i++) {
Long userId= ID.get(i);
Integer userAcNo= AcNo.get(i);
Integer userVnum= Vnum.get(i);
//if the next user exist, get the next user
if (i + 1 < ID.size()) {
Long nextUserId= ID.get(i+1);
Integer nextUserAcNo= AcNo.get(i+1);
Integer nextUserVnum= Vnum.get(i+1);
//now compare userVariables and nextUser variables
}
}
答案 1 :(得分:2)
更好的方法是拥有一个Subject对象或类似的单个列表,以便每个Subject包含有关其自身的所有相关数据。
class Subject {
private final long id;
private final int acNo;
private final int vnum;
/* Appropriate constructor and getters... */
}
您可能还需要考虑重命名字段,使其更具描述性。