JAVA 기초

JAVA 17-1

Vanillwa 2023. 9. 5. 01:30

람다식 활용

package ex3_function;

import java.util.ArrayList;

public class Ex1_function {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<>();
		
		for(int i=1; i<=10; i++)
			list.add(i);
		
		list.removeIf(x -> x%2==0); //요소가 2의 배수이면 remove한다
		
		System.out.println(list);
	}
}

실행 결과


 

package ex3_function;

import java.util.HashMap;

public class Ex2_function {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<>();
		
		map.put("id1", "이름1");
		map.put("id2", "이름2");
		map.put("id3", "이름3");
		map.put("id4", "이름4");
		map.put("id5", "이름5");
		
		//compute() : Map의 value값을 업데이트할 때 사용하는 메서드
		map.forEach((key, value) -> map.compute(key,(k, v) -> v+"**"));
		//value값 뒤에 ** 추가
		
		map.forEach((key, value) -> System.out.printf("key = %s, value = %s\n", key, value));
	}
}

실행 결과


 

package ex3_function;

import java.util.function.Function;

public class Ex3_function {
	public static void main(String[] args) {
		//function의 합성
		//두 람다식을 합성해서 새로운 람다식을 만들 수 잇다
		//f.andThen(g) -> f를 먼저 적용하고 g를 적용한다
		//f.compose(g) -> g를 먼저 적용하고 f를 적용한다
		
		Function<String, Integer> f = s -> Integer.parseInt(s,16);
		System.out.println(f.apply("FF"));
		Function<Integer, String> g = i -> Integer.toBinaryString(i);
		System.out.println(g.apply(255));
		Function<String, String> h = f.andThen(g); // FF -> 255 -> 11111111
		System.out.println(h.apply("FF"));
		
		Function<Integer, Integer> h2 = f.compose(g);
		System.out.println(h2.apply(2)); // 2 -> 10 -> 16
	}
}

실행 결과


 

'JAVA 기초' 카테고리의 다른 글

JAVA 18-1  (0) 2023.09.05
JAVA 17-2  (0) 2023.09.05
JAVA 16-2  (0) 2023.09.01
JAVA 16-1  (0) 2023.09.01
JAVA 15-2  (0) 2023.09.01