Files
Tagir Valeevandintellij-monorepo-bot 4faa707528 [java-dfa] Support groupingBy/partitioningBy/groupingByConcurrent collectors, to some extent (w/o downstream)
Fixes IDEA-302543 'Optional.get()' without 'isPresent()' in groupingBy Collector despite checking it earlier with filter in the stream

GitOrigin-RevId: c562ca1479e32c16517474db937528808c1f0fb8
2022-09-28 15:09:38 +00:00

40 lines
1.3 KiB
Java

import java.util.*;
import java.util.stream.*;
class TestClassContainingOptional {
void test() {
List<TestClassContainingOptional> list = new ArrayList<>();
list.add(new TestClassContainingOptional("name1", "optional"));
list.add(new TestClassContainingOptional("name2"));
System.out.println(list.stream()
.filter(e -> e.getOptionalString().isPresent())
.collect(Collectors.groupingBy(e -> e.getOptionalString().get()))
);
System.out.println(list.stream()
.filter(e -> e.getOptionalString().isPresent())
.collect(Collectors.groupingBy(e -> e.getOptionalString().get(), Collectors.toSet()))
);
TreeMap<Object, Set<Object>> collect = list.stream()
.filter(e -> e.getOptionalString().isPresent())
.collect(Collectors.groupingBy(e -> e.getOptionalString().get(), TreeMap::new, Collectors.toSet()));
System.out.println(collect);
}
String name;
String optionalString = null;
public TestClassContainingOptional(String name) {
this.name = name;
}
public TestClassContainingOptional(String name, String optionalString) {
this.name = name;
this.optionalString = optionalString;
}
public Optional<String> getOptionalString() {
return Optional.ofNullable(optionalString);
}
}