我实现了equals()和hashCode()方法 但是仍然报错
时间: 2023-10-29 13:05:50 浏览: 86
如果你已经实现了`equals()`和`hashCode()`方法,但是仍然报错 `'java.util.stream.Stream' 中的 'distinct()' 无法应用于 '( )'`,那么可能是因为你在`distinct()`方法中使用了错误的引用。
如果你的`listOne`和`listTwo`的元素类型为`ShenTongMain`,那么你应该在`distinct()`方法中使用`ShenTongMain::equals`来进行去重。代码如下:
```java
List<ShenTongMain> mergedList = Stream.concat(listOne.stream(), listTwo.stream())
.distinct(ShenTongMain::equals)
.collect(Collectors.toList());
```
如果你要根据`testName`属性进行去重,可以使用`ShenTongMain`类中`equals()`方法中比较`testName`属性的值,代码如下:
```java
List<ShenTongMain> mergedList = Stream.concat(listOne.stream(), listTwo.stream())
.distinct((st1, st2) -> st1.getTestName().equals(st2.getTestName()))
.collect(Collectors.toList());
```
这里使用了Lambda表达式来指定`distinct()`方法的比较逻辑,比较的是两个`ShenTongMain`对象的`testName`属性是否相等。
阅读全文
相关推荐


















