如何使用java中另一个列表中的列表获取列表元素

时间:2013-06-07 10:01:12

标签: java list

我有一个这样的清单 列表包含一组dtime,正常运行时间值。我想获取列表项,即dtime为一个和 正常时间进入另一个变量。同样,我希望将所有dtime和正常运行时间对的值分别加入 在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的新手>请帮助我..

7 个答案:

答案 0 :(得分:2)

首先将ArrayList转换为Object []数组然后获取类似下面代码的值... driver_ModelsObj是一个数组转换成驱动对象数组然后从数组内部获取值。

List<EditText> mList = new ArrayList<>();
   for(EditText mEditText : mList){
   mEditText.getText().toString();
}

答案 1 :(得分:0)

你可以尝试这个,假设你有像

这样的变量
            double dtime;     
            Timestamp tp;

listofresults来自查询结果。

listofresults = results.getResultList();

如果list来自查询,那么在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 

    }

答案 2 :(得分:0)

听起来您可以使用包含uptimedowntime的域对象。

例如,

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

(较新的)Collcetions框架的一部分List几乎总是比Vector

更好的选择

答案 3 :(得分:0)

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

嗯,你在这里做的是将列表放在0位置,并从该列表中获取项目1。在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));
}

答案 4 :(得分:0)

您应该创建一个类似

的POJO
public class TimeData {
    double dtime;
    Date uptime;
}

然后将每个POJO添加到数组列表中,然后迭代它。

        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

        }

答案 5 :(得分: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);
    }
 }

}

答案 6 :(得分:0)

如果您的清单如下

List list = [[1],[2],[3]];

我们可以检索每个值,如下所示。

((List)list.get(0)).get(0); //This will retrieve value 1
((List)list.get(1)).get(0); //This will retrieve value 2