list 根据俩个字段去重
时间: 2023-11-20 11:06:43 浏览: 125
根据你提供的代码,可以使用Java 8的Stream API来实现list根据两个字段去重。你可以先使用`collectingAndThen`方法结合`toMap`方法来根据两个字段进行分组,并将结果转换为List。以下是示例代码:
```java
List<ClassEntity> distinctClass = classEntities.stream()
.collect(Collectors.collectingAndThen(
Collectors.toMap(entity -> Arrays.asList(entity.getGrade(), entity.getProfession()),
Function.identity(),
(a, b) -> a),
map -> new ArrayList<>(map.values())));
```
请注意,上述代码中,我们使用了`Arrays.asList`来创建一个包含两个字段值的List作为Map的键。通过这种方式,我们可以根据两个字段进行分组,并且只保留了每组的第一个元素。
相关问题
list根据两个字段去重
可以使用Python中的set数据结构和lambda表达式来实现根据两个字段去重。假设有一个包含字典元素的列表,其中每个字典元素包含两个字段:field1和field2,代码如下:
```
lst = [{'field1': 'a', 'field2': 1},
{'field1': 'b', 'field2': 2},
{'field1': 'a', 'field2': 1},
{'field1': 'c', 'field2': 3},
{'field1': 'b', 'field2': 2}]
```
可以使用以下代码实现根据字段field1和field2去重:
```
unique_lst = list(set((frozenset(d.items()) for d in lst)), key=lambda x: (x['field1'], x['field2']))
result = [dict(item) for item in unique_lst]
```
这里使用了frozenset来将字典转换为不可变的集合,然后将这些集合放入set中去重,并按照两个字段的顺序进行排序。最后,再将结果转换为字典列表的格式。
list根据两个字段去重stream来做怎么做
答:可以使用Java 8中的Stream API,先用sorted()方法排序,再使用distinct()方法去除重复元素。假设有一个List<Person>,其中Person类有name和age两个属性,要根据name和age去重,则可以这样写:
list.stream().sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge)).distinct().collect(Collectors.toList())
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)