// "Fix all 'Loop can be collapsed with Stream API' problems in file" "true" import java.util.*; import java.util.stream.Collectors; class Test { List testNullable(List input) { // suppress for nullable List list = input.stream().map(integer -> integer == null ? null : integer.toString()).collect(Collectors.toList()); return Collections.unmodifiableList(list); } List test(String[] list) { return Arrays.stream(list).filter(s -> !s.isEmpty()).collect(Collectors.toUnmodifiableList()); } Collection test2(String[] list) { return Arrays.stream(list).filter(s -> !s.isEmpty()).collect(Collectors.toUnmodifiableSet()); } List test3(String[] array) { return Arrays.stream(array).filter(s -> !s.isEmpty()).distinct().collect(Collectors.toUnmodifiableList()); } Set test4(String[] array) { Set result = Arrays.stream(array).filter(s -> !s.isEmpty()).collect(Collectors.toCollection(TreeSet::new)); // toUnmodifiableSet will not preserve order; not suggested here return Collections.unmodifiableSet(result); } Map map(List input) { return input.stream().filter(s -> !s.isEmpty()).collect(Collectors.toUnmodifiableMap(s -> s, s -> s.length(), (a, b) -> b)); } Map map1(List input) { Map result = input.stream().filter(s -> !s.isEmpty()).collect(Collectors.toMap(s -> s, String::length, (a, b) -> b, TreeMap::new)); return Collections.unmodifiableMap(result); } Map map2(int[] input) { return Arrays.stream(input).filter(s -> s > 0).boxed().collect(Collectors.toUnmodifiableMap(s -> String.valueOf(s), s -> s, (a, b) -> b)); } }