Örnek

BinaryOperator Interface'ini Kullanarak Liste Üzerinde Bir İşlem Uygulamak

Bir integer listemiz olsun. Bir applyAll fonksiyonu yapıyoruz ve bu fonksiyona bir liste veriyoruz. Listenin yanında bir de BinaryOperator funcational interface'si veriyoruz. applyAll method'u elemanları işlerken BinaryOperator funcational interface'ni çağırmaktadır. Her eleman ile son kalan değer işleme sokulmaktadır:
package com.test.functionalinterface;

import java.util.Arrays;
import java.util.List;
import java.util.function.BinaryOperator;

public class ListTestForBinaryOperator {

	public Integer applyAll(List<Integer> list, BinaryOperator<Integer> binaryOperator) {
		
		int result=list.get(0);

		for (int i=1 ; i<list.size(); i++) {
			
			result=binaryOperator.apply(list.get(i), result);
			
		}
		
		return result;

	}
	
	public static void main(String[] args) {
		
	      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
	      
	      ListTestForBinaryOperator test=new ListTestForBinaryOperator();
	      
	      int result1=test.applyAll(list, (t1,t2) -> t1+t2);
	      
	      System.out.println("result1 : "+result1);
	      
	      int result2=test.applyAll(list, (t1,t2) -> t1*t2);
	      
	      System.out.println("result2 : "+result2);

	}

}
applyAll fonksiyonu görüldüğü gibi binaryOperator parametresini almaktadır. Sürekli yeni elamanları result=binaryOperator.apply(list.get(i), result); şeklinde işleme sokmaktadır. int result1=test.applyAll(list, (t1,t2) -> t1+t2); ile (lambda kullanılıyor) önce listenin tüm elemanlarını topluyoruz, int result2=test.applyAll(list, (t1,t2) -> t1*t2); ile de listenin tüm elemanlarını çarpımını buluyoruz. Çıktı aşağıdaki gibi olacaktır: result1 : 55 result2 : 3628800
zafer.teker , 11.10.2016

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir