java8新特性实现:list集合中由多条费用实体数据,每个实体数据都有一个单价字段,单价字段属性为bigdecimal。获取list中所有实体的单价字段,去重后,用/拼接成字符串
时间: 2024-11-15 12:25:29 浏览: 4
java8新特性将List中按指定属性排序过滤重复数据的方法
5星 · 资源好评率100%
在Java 8中,你可以利用Stream API来处理这种需求。首先,假设你有一个`FeeEntity`类,它包含一个BigDecimal类型的`price`字段。以下是一个简单的步骤说明:
```java
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class FeeEntity {
private BigDecimal price;
// getters and setters...
public BigDecimal getPrice() {
return price;
}
}
List<FeeEntity> feeEntities = ...; // 你的费实体列表
// 使用stream对list进行操作
String result = feeEntities.stream()
.map(FeeEntity::getPrice) // 获取每个实体的单价
.distinct() // 去重
.map(BigDecimal::toString) // 转换为字符串
.collect(Collectors.joining("/")); // 拼接为单个字符串
System.out.println(result);
```
在这个例子中,我们使用了`map()`函数两次:第一次将`FeeEntity`对象转换为`BigDecimal`的实例,第二次将`BigDecimal`转换为字符串。`distinct()`用于去除重复的值,最后`collect(Collectors.joining("/"))`将所有的价格字符串用`/`连接起来。
阅读全文