6

プロジェクトの一部を C# から Java に切り替える必要があります。しかしその前に、2 つの言語を注意深く完全に比較したいと思います。

ラムダ式に関しては、C# を介して非常に洗練されたコードを書くことができました。問題は、Java で同じ機能を適切に実装する方法です。前もって感謝します!

class Program
{
    enum Gender
    {
        Male,
        Female
    }
    class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public Gender Gender { get; set; }
        public override string ToString()
        {
            return string.Format("Id: {0}, Name: {1}, Age: {2}, Gender: {3}", Id, Name, Age, Gender);
        }
    }

    static void Main(string[] args)
    {
        var students = new[] { 
            new Student { Id = 1, Name = "Nathanial Archibald", Age = 18, Gender = Gender.Male },
            new Student { Id = 2, Name = "Georgina Sparks", Age = 19, Gender = Gender.Female },
            new Student { Id = 3, Name = "Daniel Humphrey", Age = 20, Gender = Gender.Male },
            new Student { Id = 4, Name = "Jenny Humphrey", Age = 17, Gender = Gender.Female },
        };

        var men = students.Where(p => p.Gender == Gender.Male);
        var ageAbove18 = students.Where(p => p.Age > 18);
        var humphrey = students.Where(p => p.Name.EndsWith("Humphrey"));
        var idGT1orderbyAge = students.Where(p => p.Id > 1).OrderBy(p => p.Age);

        foreach (var s in men) Console.WriteLine(s.ToString());
        foreach (var s in ageAbove18) Console.WriteLine(s.ToString());
        foreach (var s in humphrey) Console.WriteLine(s.ToString());
        foreach (var s in idGT1orderbyAge) Console.WriteLine(s.ToString());
    }
}
4

4 に答える 4

3

現在、java は Lambda 操作をサポートしていませんが、これは Java 8 で導入される予定です。詳細な参照サイトについては

ただし、Javaに切り替えたい場合、これは良いオプションですが、ラムダ操作がサポートされていない限り、同じタスクを実行するメソッドを作成でき、Java 8リリース後にラムダ操作に移行できます

これはJava 8でのラムバ操作の例です

于 2013-07-03T03:49:31.460 に答える
3

バージョン 8 の Java はラムダをサポートしている可能性があります。;)

このサイトまたはこれを使用できます。次の例を参照してください。

final Array<Integer> a = array(1, 2, 3);  
final Array<Integer> b = a.map({int i => i + 42});  
arrayShow(intShow).println(b); // {43,44,45}  
于 2013-07-03T03:47:33.563 に答える
1

Java 8 はラムダ式をサポートしています。Javaでラムダ式を使用して学生のリストをソートする方法は次のとおりです

private static void sort(List<Student> students) {
Comparator<Student> rollNumberComparator = (student1, student2) -> 
    student1.getRollNumber().compareTo(student2.getRollNumber());

Collections.sort(students,rollNumberComparator);

}

参照できます: http://www.groupkt.com/post/088a8dea/lambda-expressions---Java-8-feature.htm

于 2014-08-09T05:53:56.757 に答える
0

ラムダ式は現在のバージョンの Java (1.7) の一部ではなく、少なくとも来年までリリースされない Java 8 の機能です。

于 2013-07-03T03:46:24.107 に答える