Java-Set<;对象a>;removeAll(Set<;ObjectB>;)不执行其工作

Java-Set<;对象a>;removeAll(Set<;ObjectB>;)不执行其工作,java,set,Java,Set,我有一个集合a和一个集合B。我想做的是使用 集合A。移除集合(集合B) 我已经重写了equals()和hashCode()函数,如下所示: GooleGeometryPoint.class 主类 在线设置PostalCodes; 设置offlinePostalcodes; //收到所有投诉 抱怨= CsvParser.parseCsv(Constants.FILE\u KLACHTEN\u CSV) .stream() .map(k->CsvParser.mapToKlachtModel(k.t

我有一个集合a和一个集合B。我想做的是使用 集合A。移除集合(集合B)

我已经重写了equals()和hashCode()函数,如下所示:

GooleGeometryPoint.class 主类
在线设置PostalCodes;
设置offlinePostalcodes;
//收到所有投诉
抱怨=
CsvParser.parseCsv(Constants.FILE\u KLACHTEN\u CSV)
.stream()
.map(k->CsvParser.mapToKlachtModel(k.toString()))
.collect(Collectors.toList());
//使用坐标获取所有脱机postalcodes
离线邮政编码=
CsvParser.parseCsv(常量.文件\u邮政\u CSV)
.stream()
.map(p->CsvParser.maptogoglegeometrypoint(p.toString()))
.collect(收集器.toSet());
//把投诉抄成一套
onlinePostalcodes=投诉
.stream()
.map(e->new GoogleGeometryPoint(e.getPostalcode()、e.getStreet()、e.getCity())
.collect(收集器.toSet());
//删除所有已脱机可用的postalcodes
在线邮政编码
.stream()
.filter(e->e.getPostalcode()!=null)
.collect(收集器.toSet())
.removeAll(离线后密码);
调用removeAll()方法后,onlinePostalcodes似乎包含与以前相同的对象,但不删除任何内容。我的逻辑有什么问题吗?非常感谢您的帮助。

通过使用
.collect(Collectors.toSet())
您可以创建一个新对象并从中删除。您不需要更改
onlinePostalcodes
。也许你打算写

    onlinePostalcodes = onlinePostalcodes
            .stream()
            .filter(e -> e.getPostalcode() != null)
            .collect(Collectors.toSet());

    onlinePostalcodes.removeAll(offlinePostalcodes);
通过使用
.collect(Collectors.toSet())
可以创建一个新对象,从中删除。您不需要更改
onlinePostalcodes
。也许你打算写

    onlinePostalcodes = onlinePostalcodes
            .stream()
            .filter(e -> e.getPostalcode() != null)
            .collect(Collectors.toSet());

    onlinePostalcodes.removeAll(offlinePostalcodes);

postalcode的类型是什么?它是一个字符串,但JF Meier的答案修复了它。我会选择它作为被接受的答案。谢谢您的时间。postalcode的类型是什么?它是一个字符串,但JF Meier的答案修复了它。我会选择它作为被接受的答案。谢谢你的时间。如果我的答案解决了问题,请接受。非常感谢。是的,我会的。但是斯塔克不让我。我必须等5分钟。如果我的答案解决了问题,请接受。非常感谢。是的,我会的。但是斯塔克不让我。我得等5分钟。
    onlinePostalcodes = onlinePostalcodes
            .stream()
            .filter(e -> e.getPostalcode() != null)
            .collect(Collectors.toSet());

    onlinePostalcodes.removeAll(offlinePostalcodes);