package questions.section2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
public class S201LambdaInsteadOfAnonClass {
public S201LambdaInsteadOfAnonClass() {
rewriteByLambda();
}
// 2-1 Lambda 式で書きかえてみましょう
private void rewriteByLambda() {
// この匿名クラスを Lambda 式で書きかえ
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer x, Integer y) {
return Integer.compare(x, y);
}
};
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
Random random = new Random();
for (int i = 0; i < 10; i++) {
Integer number = numbers.remove(random.nextInt(10 - i));
numbers.add(number);
}
System.out.println("Before Sort: " + numbers);
// 整数のリストをソート
Collections.sort(numbers, comparator);
System.out.println("After Sort: " + numbers);
}
public static void main(String... args) {
new S201LambdaInsteadOfAnonClass();
}
}