1

このリストには、dtime、uptime 値のセットが含まれています。リスト項目、つまり dtime を 1 つに、uptime を別の変数に取得したいのです。同様に、すべての dtime と uptime のペアの値を、 Javaのforループ.どうすればこれを達成できますか.リストまたはベクターは可能ですか?助けてください. 擬似コード

List.get(0).get(0)-->gives 1st dtime
List.get(0).get(1)-->gives 1st uptime

List.get(1).get(0)-->gives 2nd dtime
List.get(1).get(1)-->gives 2nd uptime

等々..

forループでこれを実装する方法がわかりません.Javaが初めてです>助けてください..

4

7 に答える 7

2

最初にそのArrayListをObject []配列に変換してから、以下のコードのように値を取得します...driver_ModelsObjは、ドライブオブジェクト配列に変換してから配列内から値を取得する配列です。

for(int indx=0;indx<driver_ModelsObj.size();indx++){
                Object[] drivers=(Object[]) driver_ModelsObj.get(indx);
                String Device_ID=drivers[0].toString();
    }
于 2015-12-31T07:44:14.490 に答える
0

uptimeとを含むドメイン オブジェクトを使用できるようですdowntime

例えば、

public class Stats {
    int dtime;
    int uptime;
}

次に、次のList<Stats>ようにしてアクセスできます。

mylist.get(0).dtime
mylist.get(0).uptime
mylist.get(1).dtime
mylist.get(1).uptime

(新しい)Colcetionsフレームワークの一部であり、Listほとんどの場合、Vector

于 2013-06-07T10:13:53.310 に答える
0
List.get(0).get(0)-->gives 1st dtime
List.get(0).get(1)-->gives 1st uptime

さて、あなたがここでやっていることは、 position のリストを取得し、そのリストから0アイテムを取得1することです。a では、for loopこれを次のように表現できます。

for(int x = 0; x < List.size(); x++)
{
    for(int y = 0; y < List.get(x).size(); y++)
    {
         if(y % 2 == 0)
         {
             // It's a dtime object.
         }
         else
         {
             // It's an uptime object.
         }
    }
}

この前に、独自のリストをいくつか宣言できます。

List<DTime> listD = new ArrayList<ATimeObject>();
List<UpTime> listUp = new ArrayList<UpTime>();

循環しているときに必要なのは、関連するオブジェクトを追加することだけです。

if(y % 2 == 0)
{
    listD.add(List.get(x).get(y));
}
else
{
    listUp.add(List.get(x).get(y));
}
于 2013-06-07T10:14:25.247 に答える
0

これを試すことができます、次のような変数があるとしましょう

            double dtime;     
            Timestamp tp;

そして listofresults はクエリ結果から来ています。

listofresults = results.getResultList();

リストがクエリから来ている場合は、forループの条件でこのようにループに入れます

    for(int i=0;i< listofresults.size() ;i=i+2)
    {
        dtime=(double) listofresults.get(i);       
                                   //cast because the value is of object type
        tp=(TimeStamp) listofresults.get(i+1);
                                 //cast because the value is of object type
        //do something with these variables 

    }
于 2013-06-07T10:12:37.060 に答える
0

You should create a POJO like

public class TimeData {
    double dtime;
    Date uptime;
}

Then add each POJO to array list and then iterate it.

        List<TimeData> oList = new ArrayList<TimeData>();
        int nSize = oList.size();
        for(int i=0;i<nSize;i++){
          TimeData child = oList.get(i);
          // get value using getters

        }
于 2013-06-07T10:14:30.940 に答える
0

そのためのラッパーを作成することをお勧めします。

public class UpTimeDownTime {
  MyTimeDataClass downtime;
  MyTimeDataClass uptime;

  public UpTimeDownTime(MyTimeDataClass downtime, MyTimeDataClass uptime){
    this.downtime = downtime;
    this.uptime = uptime;
  }

  public MyTimeDataClass getDowntime () {
        return downtime;
    }

  public MyTimeDataClass getUptime () {
        return uptime;
    }

  public static void main (String[] args) {
    List<List<MyTimeDataClass>> List = ...;
    List<UpTimeDownTime> uptimeDowntime = new ArrayList<UpTimeDownTime>();
    for(List<MyTimeDataClass> timeList : List){
        UpTimeDownTime u = new UpTimeDownTime(timeList.get(0), timeList.get(1));
        uptimeDowntime.add(u);
    }
 }

}
于 2013-06-07T10:34:35.483 に答える