mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 03:13:40 +07:00
testdata for IDEA-118965
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
|
||||
class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
List<String> list = new ArrayList<>(); // JDK 7 diamond operator
|
||||
list.add("aaa");
|
||||
list.add("bb");
|
||||
list.add("cccc");
|
||||
list.add("dd");
|
||||
list.add("e");
|
||||
|
||||
schwartz(list.stream(), s -> s.length())
|
||||
.forEach(x -> { System.out.println(x); });
|
||||
}
|
||||
|
||||
public static<T, R extends Comparable<? super R>> Stream<T> schwartz(Stream<T> stream, Function<T, R> f) {
|
||||
|
||||
// class Pair - type of second element of pair must be Comparable
|
||||
final class Pair<F, S extends Comparable<? super S>> {
|
||||
public final F first;
|
||||
public final S second;
|
||||
public Pair(F first, S second){ this.first = first; this.second = second; }
|
||||
}
|
||||
|
||||
return stream
|
||||
.map(t -> new Pair<>(t, f.apply(t)))
|
||||
.sorted((p1, p2) -> p1.second.compareTo(p2.second))
|
||||
.map(p -> p.first);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user