StreamApiMigrationInspection: try continue extracting operations when limit is successfully peeled off

This commit is contained in:
Tagir Valeev
2016-12-21 16:04:42 +07:00
parent 74cfca2ac8
commit fb7790606c
6 changed files with 122 additions and 7 deletions
@@ -0,0 +1,13 @@
// "Replace with collect" "true"
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
List<String> test(Map<String, List<String>> map, int limit) {
List<String> list = map.entrySet().stream().filter(entry -> entry.getValue() != null).filter(entry -> entry.getValue().stream().anyMatch(str -> str.contains("foo"))).limit(limit).map(Map.Entry::getKey).collect(Collectors.toList());
return list;
}
}
@@ -0,0 +1,13 @@
// "Replace with collect" "true"
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
List<String> test(Map<String, List<String>> map, int limit) {
List<String> list = map.entrySet().stream().filter(entry -> entry.getValue() != null).flatMap(entry -> entry.getValue().stream()).filter(str -> str.contains("foo")).limit(limit).collect(Collectors.toList());
return list;
}
}
@@ -0,0 +1,23 @@
// "Replace with collect" "true"
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Main {
List<String> test(Map<String, List<String>> map, int limit) {
List<String> list = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : map.<caret>entrySet()) {
if(entry.getValue() != null) {
for(String str : entry.getValue()) {
if(str.contains("foo")) {
list.add(entry.getKey());
break;
}
}
}
if(list.size() >= limit) break;
}
return list;
}
}
@@ -0,0 +1,22 @@
// "Replace with collect" "true"
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Main {
List<String> test(Map<String, List<String>> map, int limit) {
List<String> list = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : map.<caret>entrySet()) {
if(entry.getValue() != null) {
for(String str : entry.getValue()) {
if(str.contains("foo")) {
list.add(str);
}
if(list.size() >= limit) return list;
}
}
}
return list;
}
}
@@ -0,0 +1,22 @@
// "Replace with collect" "false"
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Main {
List<String> test(Map<String, List<String>> map, int limit) {
List<String> list = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : map.<caret>entrySet()) {
if(entry.getValue() != null) {
for(String str : entry.getValue()) {
if(str.contains("foo")) {
list.add(str);
}
}
if(list.size() >= limit) return list;
}
}
return list;
}
}