从 List<DTO> 获取第一个和最后一个元素 [重复]
Posted
技术标签:
【中文标题】从 List<DTO> 获取第一个和最后一个元素 [重复]【英文标题】:get first and last element from List<DTO> [duplicate] 【发布时间】:2018-02-22 14:22:47 【问题描述】:我正在迭代 List<MyDTO>
以获得结果。我的要求是将列表中的名字和姓氏存储在单独的字符串中。有什么建议吗?
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 Percent
和 Addr
呢?你的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> 中获取第一个对象