-4

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 の例を見ましたが、これを行う正しい方法がわかりません! 助けてください。

4

2 に答える 2

2

より良いアプローチは、Subject オブジェクトなどの単一のリストを用意して、各 Subject にそれ自体に関するすべての関連データを含めることです。

class Subject {
    private final long id;
    private final int acNo;
    private final int vnum;

    /* Appropriate constructor and getters... */
}

また、よりわかりやすいようにフィールドの名前を変更することも検討してください。

于 2013-06-24T13:00:16.027 に答える
2

3 つのリストがすべて同じ長さの場合は、インデックス付きの for ループを使用してそれらを反復処理します。同じインデックスは、3 つのリストのそれぞれで同じユーザーを表します。

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
    }
}
于 2013-06-24T12:55:30.507 に答える