Files
Tagir Valeev 78c8e66901 [java-inspection] Support multi-line single-return lambdas in StreamToLoopInspection
Part of IDEABKL-7718
Fixes IDEA-317735

GitOrigin-RevId: 120245c2b1f4abb464d52c43dd39078a83f4bbcd
2023-04-17 10:53:11 +00:00

50 lines
2.4 KiB
Java

// "Fix all 'Stream API call chain can be replaced with loop' problems in file" "true"
import java.util.*;
import java.util.function.UnaryOperator;
import java.util.stream.Collectors;
public class Main {
public static Map<Boolean, List<String>> test(List<String> strings) {
return strings.stream().filter(s -> !s.isEmpty()).co<caret>llect(Collectors.partitioningBy(s -> s.length() > 1));
}
static void testCounting(List<String> list) {
Map<Boolean, Long> map2 = list.stream()
.collect(Collectors.partitioningBy(String::isEmpty, Collectors.counting()));
System.out.println(map2);
}
static void testSummingDouble(List<String> list) {
Map<Boolean, Double> map1 = list.stream()
.collect(Collectors.partitioningBy(String::isEmpty, Collectors.summingDouble(String::length)));
System.out.println(map1);
}
public static void testGroupingToSet(List<String> strings) {
final Map<Boolean, Map<Character, Set<String>>> nestedMap =
strings.stream().collect(Collectors.partitioningBy((String s) -> s.length() > 2, Collectors.groupingBy(s -> s.charAt(0), Collectors.toSet())));
System.out.println(nestedMap);
}
public static void testToCollection(List<String> strings) {
System.out.println(strings.stream().collect(Collectors.partitioningBy(s -> s.length() > 2, Collectors.toCollection(LinkedHashSet::new))));
}
public static void testToMapNameConflict(List<String> strings) {
System.out.println(strings.stream().map(x -> x/*trimming*/.trim()) // and collect
.collect(Collectors.partitioningBy(s -> s.length() /*too big!*/ > 2,
Collectors.toMap(s -> ((UnaryOperator<String>) /* cast is necessary here */ x -> x = x).apply(s),
String::length))));
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList()));
System.out.println(test(Arrays.asList("a", "bbb", "cc", "d", "eee", "")));
testCounting(Arrays.asList("a", "", "bbb", "c", "a", ""));
testSummingDouble(Arrays.asList("a", "", "bbb", "c", "a", ""));
testGroupingToSet(Arrays.asList("a", "bbb", "cccc", "dddd"));
testToCollection(Arrays.asList("a", "bbb", "cccc", "dddd", "ee", "e", "e"));
testToMapNameConflict(Arrays.asList("a", "bbb", "cccc", "dddd", "ee", "e", "e"));
}
}