Vavr `List`: ```java List<String> str = List.of("A", "B", "C"); HashSet<String> res = str.foldLeft( HashSet.empty(), (set, s) -> set.add(s) ); ``` Java `Stream`: ```java Stream<String> str = Stream.of("A", "B", "C"); HashSet<String> res = str.reduce( HashSet.empty(), (set, s) -> set.add(s), (set1, set2) -> set1.addAll(set2) ); ``` RxJava2 `Observable`: ```java Observable<String> str = Observable.just("A", "B", "C"); Single<HashSet<String>> res = str.reduce( HashSet.<String>empty(), (set, s) -> set.add(s) ); ```