Loading

Java 8 Stream Api kullanımı

Java 8 Stream Api kullanımı

java

Merhaba arkadaşlar

Benim hala kullanırken yardım aldığım bir özellikten bahsediyor olacağız bu yazımızda. Hem ben bir daha üzerinden geçmiş olacağım hem sizlerin öğrenmesine katkı sağlamış olacağım. Ama unutmayın ki bir IDE açıp kendiniz denemezseniz öğrenemezsiniz. Sık sık okuyup sık sık alıştırma yapmalısınız. Java 8 ile birlikte Stream API ile yığınsal veriler üzerinde kolayca işlemlerimizi yapabilme özelliği gelmiştir. Bir liste veya dizi üzerinde kolaylıkla kodlama yaparken en cok kullandığımız işlemleri yapabiliriz.

Stream API sayesinde sık kullanılan çeşitli operasyonları yapabilirsiniz. Klasik bir örnek olacak ama 30 satır kod yazıyorsanız Stream API sayesinde 1 satıra düşürebilirsiniz.

  • filter 
  • forEach 
  • map 
  • reduce 
  • distinct 
  • limit 
  • collect 
  • count 
  • min / max  

Yukarıda sıraladığım operasyonlar ile stream API'ları kullanabilirsiniz. Örneklendirelim.

Asağıdakı örnekte bir String Dizi ele alıyoruz. Ve "o" ile başlayanları buyuk harflere çevirip Console'da görmek istiyoruz. Ekstra olarak 

sorted() methodu eklersek alfabetik sıralama yapacaginizi de soyleyebilirim.

 List myList = Arrays.asList("oznur", "emre", "ozge", "ahmet");
  myList.stream().filter(s -> s.startsWith("o")).
  map(String::toUpperCase).
  forEach(System.out::println);

 

Asagidaki örnekte yine ayni String Dizi uzerinden Filter() methodunun başka bir şekilde kullanıldığını görüyoruz. Bu örnekler sizlere çok anlamlı gelmeyebilir fakat profesyonel dünyadan örnekler aklinıza getirerek bu örnekleri özümseyebilirseniz kafanıza tam anlamı ile oturabilir.

collect: Collect metodu intermediate operatörlerle yapılan işlemleri bir liste olarak geri döndürür.

 List myList = Arrays.asList("oznur", "emre", "ozge", "ahmet");
  List result = myList.stream().
    filter(item -> !"ahmet".equals(item)).
    collect(Collectors.toList());
  System.out.println(result);

Aşağıdakı ornekte de hem bir For döngüsü hem de yeni bir dizi görüyorsunuz.

      List number = Arrays.asList(3,5,7,9);
       List newNumbers = number.stream().map(item -> item+2).collect(Collectors.toList());
       System.out.println(newNumbers);

Aşağıdaki örnekte ise limit belirleyebildiğimizi görüyoruz.

 

  Random random = new Random();
       random.ints().limit(5).forEach(System.out::println);

Birden fazla sart birden fazla kontrol yapabilirsiniz.

  List student = Arrays.asList(
                 new Student("oznur", 30),
                 new Student("emre", 20),
                 new Student("onur", 40)
         );
  
       Student result = student.stream()                       
                 .filter(x -> "oz".equals(x.getName()))       
                 .findAny()                                      
                 .orElse(null); 
       System.out.println(result);

Örnekleri çogaltabilirsiniz yeter ki IDE'yi açın ve çalışmaya başlayın 😊 

Öznur EMRE
Yazar / 6 Yazı / 75,1K Okunma


Yorum Yap

E-Posta adresiniz yayınlanmayacaktır.

ya da üye olmadan yorum yap ve onaylanmasını bekle.
ÜST