List<DevPortReportEsDTO> eSResponseList 取这个list中某个字段的值组装成list,不重复
时间: 2024-02-21 13:56:47 浏览: 19
可以使用 Java 8 的 Stream API 来实现。假设要获取 `DevPortReportEsDTO` 对象中的名为 `fieldName` 的字段的值,可以按如下方式操作:
```java
List<DevPortReportEsDTO> eSResponseList = ...; // 假设这是原始列表
List<String> fieldValues = eSResponseList.stream()
.map(DevPortReportEsDTO::getFieldName) // 获取目标字段的值
.distinct() // 去重
.collect(Collectors.toList()); // 转为列表
```
这样就可以得到一个包含目标字段不重复的值的列表 `fieldValues`。其中 `DevPortReportEsDTO::getFieldName` 是一个方法引用,代表获取 `DevPortReportEsDTO` 对象的 `fieldName` 字段的值。`distinct()` 方法用于去重,`collect(Collectors.toList())` 方法用于将结果转为列表。
相关问题
List<DevPortReportEsDTO> eSResponseList 取这个list中某个字段的值组装成Set,不重复
可以使用以下代码将列表中某个字段的值取出来组装成 Set,并且去重:
```
Set<Object> set = eSResponseList.stream()
.map(DevPortReportEsDTO::getFieldName) // 将列表中的某个字段取出来
.collect(Collectors.toSet()); // 将结果组装成 Set 并去重
```
其中,`getFieldName` 需要替换成你要取出的字段的名称。这样就可以得到一个 Set,其中包含了列表中某个字段的所有不重复的值。
List<对象>提取某个字段的List<String>
要从List<对象>中提取某个字段的List<String>,您可以按照以下步骤进行操作:
1. 创建一个空的List<String>,用于存储提取出的字段值。
2. 使用Java 8的Stream API对List<对象>进行处理。首先,使用map方法将每个对象映射为相应字段的值。例如,如果要提取的字段名为fieldName,则可以使用lambda表达式 `.map(obj -> obj.getFieldName())`。
3. 最后,使用collect方法将处理后的值收集到List<String>中。您可以使用Collectors.toList()方法实现这一步骤。
请注意,上述步骤中的字段名和对象类型需要根据您的具体情况进行调整。以下是一个示例代码,演示了如何从List<Map<String, Object>>中提取"fieldname"字段的List<String>:
```
List<Map<String, Object>> dataList = ...; // 假设这是您的List<Map<String, Object>>对象
List<String> fieldValues = dataList.stream()
.map(map -> (String) map.get("fieldname"))
.collect(Collectors.toList());
```
以上代码将提取出每个Map中"fieldname"字段的值,并将其存储在fieldValues列表中。请根据您的实际情况修改字段名以及对象类型。<span class="em">1</span><span class="em">2</span>