Hello

Java java.util.function 패키지

by 볼빵빵오춘기

java.util.function 패키지

자주 사용되는 다양한 함수형 인터페이스를 제공한다.

 우리가 사용하는 함수의 종류가 몇 개 없다.

⇒ 표준화된다는 장점이 생긴다.

 

매개변수가 2개인 함수형 인터페이스

앞에 ‘Bi’ 가 붙어있다.

 

매개변수의 타입과 반환타입이 일치하는 함수형 인터페이스

 

예제 코드

import java.util.function.*;
import java.util.*;

class Ex14_2 {
	public static void main(String[] args) {
		Supplier<Integer>  s = ()-> (int)(Math.random()*100)+1;
		Consumer<Integer>  c = i -> System.out.print(i+", "); 
		Predicate<Integer> p = i -> i%2==0; 
		Function<Integer, Integer> f = i -> i/10*10; // i의 일의 자리를 없앤다.
		
		List<Integer> list = new ArrayList<>();	
		makeRandomList(s, list);
		System.out.println(list);
		printEvenNum(p, c, list);
		List<Integer> newList = doSomething(f, list);
		System.out.println(newList);
	}

	static <T> List<T> doSomething(Function<T, T> f, List<T> list) {
		List<T> newList = new ArrayList<T>(list.size());

		for(T i : list) {
			newList.add(f.apply(i));
		}	

		return newList;
	}

	static <T> void printEvenNum(Predicate<T> p, Consumer<T> c, List<T> list) {
		System.out.print("[");
		for(T i : list) {
			if(p.test(i))
				c.accept(i);
		}	
		System.out.println("]");
	}

	static <T> void makeRandomList(Supplier<T> s, List<T> list) {
		for(int i=0;i<10;i++) {
			list.add(s.get());
		}
	}
}

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기