Java 8 Lambdasına Hızlı Giriş

  • Michael Fisher
  • 0
  • 4208
  • 429
reklâm

Java programcısıysanız ve Java 8 lambdaları hakkında daha fazla bilgi edinmek istiyorsanız, bu makalede lambda sözdizimi ve kullanımına daha yakından göz atacağız..

bir lambda ifadesi Java'da, bir ifadedeki sınıfın yöntemini ifade etmenin özlü bir yoludur. Parametrelerin bir listesi ve bir gövdesi var. Gövde tek bir ifade veya blok olabilir. Başlarken Öğrenmeniz Gereken 10 Temel Java Konsepti 10 Başlarken 10 Temel Java Konsepti Başlarken Öğrenmeniz Gereken Bir GUI yazarken, sunucu tarafında yazılım geliştirirken veya Android kullanarak mobil bir uygulamada, Java öğrenmek size iyi hizmet edecektir. İşte başlamanıza yardımcı olacak bazı temel Java kavramları. . Genellikle bir arayüz uygulamasının gerekli olduğu yerlerde kullanılır. Bu ihtiyaç genellikle bir yöntemi çağırmak için argüman olarak bir arayüz gerektiğinde ortaya çıkar..

Bazı Basit Lambda İfadeleri

Bazı basit lambda ifadeleri örneklerine bakalım.

Aşağıdaki iki sayı kabul eden bir lambda ifadesidir. x ve y ve toplamı hesaplar.

(int x, int y) -> x + y; 

Daha kısa bir gösterim için parametre türlerini bırakın:

(x, y) -> x + y; 

Parametre kabul etmeyen bir fonksiyon tanımlayın:

() -> 404; 

Aşağıdakiler de geçerlidir ve hiçbir parametre kabul etmez ve hiçbir şey döndürmez:

() ->  

Tek bir parametre için parametreleri içeren parantezlere gerek yoktur:

x -> x + 1 

Daha karmaşık kod blokları da mümkündür. Aşağıdaki lambda tekli kabul eder hat parametre ve üzerinde bazı işlemler yapar. Parametrenin türünün çevreleyen bağlamdan çıkarıldığına dikkat edin:

satır -> String [] x = pattern.split (satır); yeni oyuncu döndür (Integer.parseInt (x [0]), x [1], x [2], x [3], Integer.parseInt (x [4]));  

Temiz ve Kısa Kodlama

Lambda ifadeleri kullanmak kodunuzun temiz ve özlü olmasına yardımcı olur. Buna yardımcı olmak için, Java 8 sınıfları lambdalardan geniş ölçüde faydalanmaktadır..

Bir Liste veya Küme Döndürme

Gibi koleksiyon sınıfları Liste, Set, kuyruk, ve böyle uygulamak iterable elemanların üzerinden döngü yapmayı çok kolaylaştıran arayüz.

Bir isim listesi bildirin.

Liste adları = Arrays.asList ("Joe", "Jack", "James", "Albert"); 

Lambda olmadan listenin üzerinde dolaş:

(Dize adı: isimler) System.out.println (isim);  

Lamda kullanarak, yukarıdaki döngü şöyle yazılabilir:

names.forEach (ad -> System.out.println (ad)); 

Java 8 yöntemi referanslarıyla, yukarıdakiler daha da net bir şekilde yazılabilir:

names.forEach (System.out :: println); 

Harita Üzerinde Döngü

bir harita anahtarların değerlere eşlenmesidir. Bir haritanın üzerinde döngü yapmak, (anahtar, değer) eşlemelerinin her biri üzerinde ilmek yapmayı içerir. Bu durum için lambdaları nasıl kullanabileceğinizi karşılaştırın..

İlk önce bir harita tanımlayın:

Harita haritası = yeni HashMap (); map.put ("Atlanta, Georgia", 110); map.put ("Austin, Teksas", 115); map.put ("Baltimore, Maryland", 105); map.put ("Birmingham, Alabama", 99); map.put ("Boston, Massachusetts", 98); 

Bu haritanın üzerinden geleneksel yolla geçiş yapabilirsiniz:

(Map.Entry e: map.entrySet ()) için System.out.println (e.getKey () + "=>" + e.getValue ());  

İşte lambdas kullanarak aynı şeyi hızlı ve özlü bir şekilde nasıl yapabileceğinizi aşağıda bulabilirsiniz:

map.forEach ((k, v) -> System.out.println (k + "=>" + v)); 

İşlevsel Arabirimler

Bir lambda ifadesinin dönüş tipi nedir? Başka bir deyişle, türü nedir X aşağıdaki ifadede?

X x = a -> a + 1; 

Bir lambda ifadesinin dönüş tipi fonksiyonel arayüz - Tek bir soyut yöntemle bir arayüz. Bir arabirime lambda ifadesini uyumlu bir soyut yöntemle atayabilirsiniz. Aşağıdaki bazı örnekler.

Çok iş parçacıklı bir görev oluşturma

Ayrı bir iş parçacığında yürütme görevi oluşturmayı düşünün. 4 Java'da Çok iş parçacıklı kod yazma yöntemleri 4 Java'da çok iş parçacıklı kod yazma yöntemleri Bu makalede, Java'da çok iş parçacıklı kod yazmak için birkaç seçenek karşılaştırdık. Bir sonraki Java projeniz için hangi seçeneğin kullanılacağına daha iyi karar verebilirsiniz. - Görevi bir tanımlamanız gerekir. Runnable arayüzü ve uygulamak koşmak() yöntem. İşte Runnable işlevsel bir arayüzdür.

sınıf MyTask Runnable uygular … public void run () // görevinizi burada uygulayın System.out.println ("Şimdi ayrı bir dizide çalıştırılıyor."); … 

Daha sonra bir örneğini oluşturabilirsiniz Benim görevim sınıf ve yeni bir yürütme iş parçacığı başlatmak için kullanın.

MyTask görevi = yeni MyTask (); İş parçacığı iş parçacığı = yeni iş parçacığı (görev); thread.start (); 

Bir lambda kullanarak, oluşturma işlemi Runnable çok daha kolay hale gelir. Yukarıdaki görev tanımı şu şekilde yazılabilir:

Runnable task = () -> System.out.println ("Şimdi ayrı bir dizide çalıştırılıyor."); 

Ya da:

Thread thread = new Thread (() -> System.out.println ("Şimdi ayrı bir dizide çalışıyor.")); thread.start (); 

Bir Karşılaştırıcı Kullanarak Karşılaştırma

Karşılaştırıcı verilen bir türdeki nesneleri karşılaştırmak için işlevsel bir arayüzdür. Adı verilen tek bir soyut yöntemi tanımlar. karşılaştırmak() bir lambda ifadesi kullanılarak tanımlanabilir.

İşte bir lambda ifadesi yaratan bir Karşılaştırıcı dizeleri büyük / küçük harf duyarlı olarak karşılaştırmak için kullanılır.

Karşılaştırıcı cmp = (x, y) -> x.compareToIgnoreCase (y); 

Bir kez bir Karşılaştırıcı fonksiyonel arayüz oluşturuldu, gerektiğinde tekrar kullanılabiliyor.

Burada, artan sırada dizelerin listesini sıralarız.

Liste adları = Arrays.asList ("Joe", "Jack", "James", "Albert"); Collections.sort (adlar, cmp); names.forEach (System.out :: println); // Albert Jack James Joe'yu yazdırdı 

Yukarıdaki liste yerinde sıralanır. Şimdi kullanarak arama yapabilirsiniz Ikili arama() aşağıdaki gibi yöntem:

System.out.println ("search (Joe):" + Collections.binarySearch (adlar, "Joe", cmp)); # aramaları yazdırır (Joe): 3 

Bir listeden maksimum ve minimum hesaplama yapmak da lambda kullanarak kolaydır.

Bazı verileri tanımla:

Liste temps = Arrays.asList (110, 115, 105, 99, 98, 54, 109, 84, 81, 66, 72, 135, 115, 75, 82, 90, 88); 

Karşılaştırıcıyı tanımlamak için bir lambda ifadesi kullanın:

Karşılaştırıcı cmpTemp = (x, y) -> Tamsayı.compare (x, y); 

Ve maksimum ve minimum değerleri yazdırın:

System.out.println ("------ Max / Min ------"); System.out.println (Koleksiyonlar.max (temps, cmpTemp) + "/" + Collections.min (temps, cmpTemp)); 

GUI Programlamada Kullanım

Lambda ifadeleri, GUI programlamada olay işleyicileri uygulamak için de son derece kullanışlıdır. Bir düğme tıklama işleyicisi kullanmanın bir örneği.

JButton düğmesi = yeni JButton ("Beni Tıkla"); button.addActionListener (e -> System.out.println ("Düğme tıklandı!")); 

Java 8'de lambda kullanmaya hızlıca bakıyordu.

Java 8'den beri lambdas hayatınızı kolaylaştırdı mı? Lütfen aşağıdaki yorumlarda açıklayınız.




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.