List<AutoCase> 集合中 根据 moduleName 去重
时间: 2024-09-25 09:09:56 浏览: 14
在Java中,如果你有一个`List<AutoCase>`集合,其中`AutoCase`是一个包含`moduleName`字段的对象,你可以通过以下步骤来根据`moduleName`去重:
1. 首先,你需要创建一个新的`HashSet`或者`LinkedHashSet`(因为Set数据结构不允许有重复元素)。Set会自动去除重复项,因为它内部实现了一个唯一的哈希码机制。
```java
Set<String> uniqueModuleNames = new HashSet<>();
```
2. 然后遍历`List<AutoCase>`,将每个对象的`moduleName`添加到Set中。由于Set不允许重复,所以相同的`moduleName`只会被添加一次。
```java
for (AutoCase autoCase : list) {
uniqueModuleNames.add(autoCase.getModuleName());
}
```
3. 最后,如果你需要的是`List<String>`形式的结果,可以再次转换回List,此时你就得到了没有重复`moduleName`的列表:
```java
List<String> distinctModuleNames = uniqueModuleNames.stream()
.map(moduleName -> new AutoCase(null, moduleName)) // 如果你只想保留模块名,这里可以简化为moduleNames
.collect(Collectors.toList());
```
这将创建一个新的List,其中每个元素都是一个只包含`moduleName`的新对象,用于表示原始集合中独特的模块名。