java OrgUnitAutoDto对象包含unitCode和ehrUnitCode List<OrgUnitAutoDto> dtoList 有多条数据。 校验dtoList是否存在重复的OrgUnitAutoDto对象,判断重复标准为unitCode和ehrUnitCode重复,需要考虑字段去空格
时间: 2023-11-28 20:48:43 浏览: 84
可以使用Java中的Set集合来判断重复,因为Set集合中不允许存在重复元素。具体实现可以按照如下步骤:
1. 定义一个HashSet集合,用于存放已经遍历过的OrgUnitAutoDto对象。
```
Set<OrgUnitAutoDto> set = new HashSet<>();
```
2. 遍历dtoList列表中的每一个OrgUnitAutoDto对象,对其unitCode和ehrUnitCode去空格后封装成新的OrgUnitAutoDto对象。
```
for (OrgUnitAutoDto dto : dtoList) {
String unitCode = dto.getUnitCode().trim();
String ehrUnitCode = dto.getEhrUnitCode().trim();
OrgUnitAutoDto newDto = new OrgUnitAutoDto(unitCode, ehrUnitCode);
}
```
3. 将新的OrgUnitAutoDto对象加入HashSet集合中,如果add()方法返回false,则说明该对象已经存在于集合中,即存在重复。
```
if (!set.add(newDto)) {
// 存在重复对象,进行相应处理
}
```
完整代码示例:
```
Set<OrgUnitAutoDto> set = new HashSet<>();
for (OrgUnitAutoDto dto : dtoList) {
String unitCode = dto.getUnitCode().trim();
String ehrUnitCode = dto.getEhrUnitCode().trim();
OrgUnitAutoDto newDto = new OrgUnitAutoDto(unitCode, ehrUnitCode);
if (!set.add(newDto)) {
// 存在重复对象,进行相应处理
}
}
```
需要注意的是,重写OrgUnitAutoDto的equals()和hashCode()方法,以便HashSet集合能够正确判断两个对象是否相等。可以根据unitCode和ehrUnitCode来判断两个对象是否相等,实现方式如下:
```
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof OrgUnitAutoDto)) return false;
OrgUnitAutoDto dto = (OrgUnitAutoDto) o;
return unitCode.equals(dto.getUnitCode().trim()) &&
ehrUnitCode.equals(dto.getEhrUnitCode().trim());
}
@Override
public int hashCode() {
return Objects.hash(unitCode.trim(), ehrUnitCode.trim());
}
```
阅读全文