Akışlarla veri dönüşümü

Java'da Girdi/Çıktı ve Akışlar

Alex Liu

Software Development Engineer

Akışlarla veri dönüşümü

  • Akışlarla veri dönüşümü

    • Veri biçimlerini dönüştürün, bilgiyi toplayın ve filtreleyin
    • Sonuçları yeni bir koleksiyon türünde saklayın (örn. List → Set)
    • Desteklenen Koleksiyonlar:
      • Listeler (örn. ArrayList, LinkedList)
      • Kümeler (örn. HashSet, TreeSet)
      • Haritalar (Keys/Values Streams olarak) (örn. HashMap, TreeMap)
      • Diziler (Arrays.stream() ile)
  • Video boyunca kullanacağımız names adlı ArrayList örneği

    names: ["Alice", "Bob", "Charlie", "David"]
    
Java'da Girdi/Çıktı ve Akışlar

Ögeleri dönüştürmek için Stream kullanma

  • Hazırlık: gerekli Set, Collectors ve Stream sınıflarını içe aktarın
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

// Önce oluşturduğumuz `names` `ArrayList`ini bir `Stream`e dönüştürün Stream<String> namesStream = names.stream();
  • Mevcut veri: [Alice, Bob, Charlie, David]
Java'da Girdi/Çıktı ve Akışlar

Ögeleri dönüştürmek için Stream kullanma (Devam)

// Her ögeyi büyük harfe çevirmek için `.map()` kullanın
Stream<String> upperCaseNameStream = namesStream.map(
        name -> name.toUpperCase())
  • Mevcut veri: [ALICE, BOB, CHARLIE, DAVID]
// Dönüştürülen akış verisini saklamak için `.collect()` ve `Collectors.toSet()` kullanın
upperCaseNameStream.collect(Collectors.toSet())
  • Nihai veri:
    {CHARLIE, ALICE, BOB, DAVID}
    
Java'da Girdi/Çıktı ve Akışlar

Toplama için Stream kullanma

  • .reduce() yöntemi

    • Ögeleri tek bir sonuca indirger
    • Toplama, birleştirme veya min/maks bulma için uygundur
  • .reduce() iki girdi alır

    • Başlangıç Değeri: birikimin başlangıç değeri, örn. 0
    • İkili Operatör: iki argüman alan bir fonksiyon
      • (x, y) -> x + y şu anlama gelir:
        • x biriken toplamı temsil eder
        • y işlenen mevcut ögeyi temsil eder
        • İşlem, tüm ögeler bitene kadar y’yi x’e ekler
Java'da Girdi/Çıktı ve Akışlar

Toplama için Stream kullanma: Örnek

  • names ArrayListini bir Stream nesnesine dönüştürün.
    Stream<String> stream = names.stream();
    
  • .map() ile adı uzunluğa çevirin ve .reduce() ile toplayın
    stream
      .map(name -> name.length())
      .reduce(0, (sum, length) -> sum + length);
    
  • Sonuç: 20
Java'da Girdi/Çıktı ve Akışlar

Haydi pratik yapalım!

Java'da Girdi/Çıktı ve Akışlar

Preparing Video For Download...