从 List<DTO> 获取第一个和最后一个元素 [重复]

Posted

技术标签:

【中文标题】从 List<DTO> 获取第一个和最后一个元素 [重复]【英文标题】:get first and last element from List<DTO> [duplicate] 【发布时间】:2018-02-22 14:22:47 【问题描述】:

我正在迭代 List&lt;MyDTO&gt; 以获得结果。我的要求是将列表中的名字和姓氏存储在单独的字符串中。有什么建议吗?

    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

【问题讨论】:

你的输出怎么样? countName 去哪儿了? Spread PercentAddr 呢?你的MyDTO 是什么样的?哪些属性代表名字和姓氏?当您尽最大努力查找如何获取列表中的第一个和最后一个元素时,您发现了什么以及您不理解什么? 【参考方案1】:

你可以使用:

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();

【讨论】:

请在上面的帖子中查看我更新的代码。在列表中,我有许多属性,例如 countName、SpreadPercent、Addr。我只想获取 countName 的第一个和最后一个元素值。【参考方案2】:

您可以通过索引获取列表的任何元素,只需注意在 0 和 size - 1 之间移动索引

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

但由于这是一个列表,您也可以使用linkedList并使用get first和get last方法

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

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

【讨论】:

【参考方案3】:

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

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。要仅打印此列表的名字和姓氏,您可以简单地重用上面的代码,并在内部列表上建立索引:

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

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

【讨论】:

以上是关于从 List<DTO> 获取第一个和最后一个元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将 DataReader 转换为 DTO/List<DTO>? [复制]

如何使用 Linq 从 List<Object> 中获取第一个对象

从孩子那里获取属性

如何从 List<T> 中获取每个第 n 个项目?

如何创建从实体到 dto 的映射器,其中 dto 嵌套在哪里?

List<> 获取下一个元素或获取第一个