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)
);
```