Loading

Java 8 Stream Api Örnekler

Java 8 Stream Api Örnekler

java

Selam Arkadaşlar,

Bu konu ile ilgili bir yazı daha paylaşmıştık (Bknz: Java 8 Stream Api kullanımı). Şimdi ise daha fazla örnek ve anlatımla bu özellikleri pekiştireceğiz.

Aşağıdaki kod bloğunda Student Classına ait objelerin age değişkenlerine gore, kücükten büyüğe doğru sıralama elde ederek, sorted listesine atıldığıını görüyoruz. Reversed() fonksiyonunu eklerseniz tam tersi bir liste elde edebilirsiniz.

	
public static void main(String[] args) {
	List student = getStudent();
	List sorted = student.stream()
	.sorted(Comparator.comparing(Student::getAge))
	.collect(Collectors.toList());

}

private static List getStudent() {
	return List.of(
		new Student("ali veli", 20, Gender.MALE),
		new Student("Oznur Emre", 33, Gender.FEMALE),
		new Student("Fahriye Evcen", 57, Gender.FEMALE),
		new Student("Murat Boz", 14, Gender.MALE),
		new Student("Acun ilicali", 99, Gender.MALE),
		new Student("Burcin Terzioglu", 7, Gender.FEMALE),
		new Student("Zehra Ak", 120, Gender.FEMALE)
	);
  }

Streamlerle bir dosyadan veri okuyabilir ve okunan verilere koşullar vererek istediğimiz çıktığı elde edebiliriz. 

Barış Manço şarkılarını içeren örnek TXT dosyası içeriğini aşağıda paylaşıyorum. Bu Stringleri projenize text dosyası olarak ekleyebilirsiniz.

Gule Gule Oğlum
Aynali Kemer
Ruya
Yine Yol Gorundu Gurbete
Zalim Sultan
Donence
Gibi Gibi
Ben Bilirim

Stream musicList = Files.lines(Paths.get("barismanco.txt"));
musicList
.sorted()
.filter(item -> item.length()>10)
.forEach(System.out::println);
musicList.close();


Yukarıdaki kodun çıktısı aşağıdaki gibi olacak;

Aynali Kemer
Ben Bilirim
Gule Gule Oğlum
Yine Yol Gorundu Gurbete
Zalim Sultan

Bu koşulları çoğaltabiliriz ve profesyonel projeler için düşünebiliriz. İşlerin çok çok kolaylaştığını görebilirsiniz.

List musicList = Files.lines(Paths.get("barismanco.txt"))
.filter(item -> item.contains("Ben"))
.collect(Collectors.toList());
musicList.forEach(x -> System.out.println(x));


Yukarıdaki kodun çıktısı aşağıdaki gibi olacak;

Ben Bilirim

Stream musicList = Files.lines(Paths.get("barismanco.txt"));
int rows = (int) musicList
.sorted()
.filter(item -> item.length()>3)
.count();
System.out.println("rows : " +rows);
musicList.close();


Yukarıdaki kodun çıktısı aşağıdaki gibi olacak;

rows: 8

Reduce() methodunun örneğini görelim

List list = Arrays.asList(1.38, 2.56, 4.3);
Double total = list.stream().reduce(0.0 ,(Double a, Double b) -> a+b);
System.out.println("total: " +total);


Yukarıdaki kodun çıktısı aşağıdaki gibi olacak;

total: 8.24 

Aşağıdaki örnekte ise IntSummaryStatistics objesiye ilgili bir örnek göreceğiz. Bu obje bize liste ile ilgili tüm detayı vermektedir.

IntSummaryStatistics sum = IntStream.of(3,4,5,6,7,8)
.summaryStatistics();
System.out.println(sum);


Yukarıdaki kodun çıktısı aşağıdaki gibi olacak;

IntSummaryStatistics{count=6, sum=33, min=3, average=5,500000, max=8}

Ö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