从List <dto>获取第一个和最后一个元素

时间:2017-09-13 18:52:33

标签: java foreach

我正在迭代List<MyDTO>以获得结果。我的要求是将列表中的名字和姓氏存储在单独的String.Any建议中吗?

    for (MyDTO result : results) {
        System.out.println("countName :" + result.getCountName());//returns 20 names
        System.out.println("Spread Percent :" + result.getSpreadPercent());
        System.out.println("Addr :" + result.getAddr());
    }

输出:

ASD
xxx
Joh
Joe
xyz

我希望输出为:

first Name: ASD
Last Name : xyz

3 个答案:

答案 0 :(得分:2)

您可以使用:

MyDTO firstresult = results.get(0);//first value
MyDTO lastresult = results.get(results.size() - 1);//last value

如果您的列表只包含一个元素,则可以返回相同的值。

注意

在使用之前,你必须检查列表是否为空,否则你将获得例外。

MyDTO firstresult = null;
MyDTO lastresult  = null;
if (!results.isEmpty()) {
    firstresult = results.get(0);//first value
    lastresult = results.get(results.size() - 1);//last value
}
  

请在上面的帖子中查看我的更新代码。在列表中我有很多   属性如countName,SpreadPercent,Addr。我想先得到   和countNam的最后一个元素值

使用相同的解决方案,您可以使用:

results.get(0).getCountName();
results.get(results.size() - 1).getAddr();

答案 1 :(得分:1)

您可以使用索引访问元素:

System.out.println("First Name :" + results.get(0). getCountName());

System.out.println("Last Name :" + results.get(results.size()-1).getCountName());

编辑 ::基于

System.out.println("countName :" + result.getCountName());//returns 20 names

似乎getCountName会进一步返回List。要仅打印此列表的firstName和lastName,您只需重复使用上面的代码,并在内部列表上建立索引:

System.out.println("First Name :" + results.getCountName().get(0));

System.out.println("Last Name :" + reslts.getCountName().get(reslts.getCountName().size()-1));

答案 2 :(得分:-1)

你可以通过索引获取列表的任何元素,只需要知道将索引移到0和size - 1之间

List<MyDTO> myList = ...
//the 1st element is
MyDTO fisrt = myList.get(0);

但由于这是一个列表,你也可以使用linkedList并使用方法获取第一个并获得最后一个

List<MyDTO> x = new LinkedList<>();

MyDTO first = ((LinkedList<MyDTO>) x).getLast();
MyDTO last = ((LinkedList<MyDTO>) x).getFirst();