1

sort()以下は、メソッドのパラメーターとしてラムダ式を使用する Java プログラムです。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Dummy {

    public static void main(String[] args) {
        List<String> a1 = new ArrayList<String>();
        a1.add("Zara");
        a1.add("Mahnaz");
        a1.add("Ayan");
        Collections.sort(a1,
                            (p1, p2) -> p1.compareTo(p2)

                        );

        System.out.println(a1.toString());
    } //end main

}

Eclipse を使用すると、メソッドについて言うとF3sort()実際には Java 7 バージョンで使用されているのと同じsort()メソッド シグネチャ (定義) に制御が移ります。

@SuppressWarnings({"unchecked", "rawtypes"})
    public static <T> void sort(List<T> list, Comparator<? super T> c) {
        //whatever
    }

私のコードでは、メソッドの 2 番目のパラメーターの構文は、内部でsort()実装することと実際に同等interface Comparator<T>ですか? 何かのようなもの

class ComparePersonsbyName implements Comparator<String>{
    public int compareTo(String p1, String p2){
        return p1.compareTo(p2);        
    }
}
Collections.sort(a1, new ComparePersonsbyName());
4

1 に答える 1

4

はい、Comparator機能的なインターフェースです

于 2015-06-29T06:44:47.873 に答える