Ява объединить два потока без дубликатов - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть два потока, и я хочу объединить их, избегая дубликатов.Как я могу это сделать?

Вот мои потоки:

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.

порядок не важен.

1 Ответ

0 голосов
/ 20 декабря 2018

вы можете сделать это следующим образом

     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, тогда .equal function

если вы используете intellij, попробуйте alt + insert и нажмите равные и hashCode

...