java 合并两个不重复的通量

java merge two flux without duplicates

我有两个通量,我想合并它们以避免重复。我该怎么做?

这是我的通量:

Flux<Tweet> remoteTweets = Flux.just(
        new Tweet("tag1",new TweetID("text","name"),"userimage","country","place"),
        new Tweet("tag2",new TweetID("text","name"),"userimage","country","place")
);

Flux<Tweet> localTweets = Flux.just(
        new Tweet("tag1",new TweetID("text","name"),"userimage","country","place")
);

合并这两个给我 tag 1, tag1, tag2,但我想要 tag1, tag2

顺序不重要。

你可以这样做

     SpringApplication.run(BackendApplication.class, args);
  String[] strings = {"a","b","c"};
    Flux.merge(Flux.fromArray(strings),Flux.fromArray(strings))
            .distinct()
            .map(s -> {
                System.out.println(s);
                return s;
            }).subscribe();

但在你的 Tweet 对象中,你需要重写 equals 和 hashcode 注意 distinct 首先看 hashcode 是否相等然后 .equal function

如果您使用的是 intellij,请尝试使用 alt+ 插入并单击 equal 和 hashCode