스퐁지송 개발노트

22.12.02(불금) 자바안의 기본 람다 인터페이스 구현으로 예시문작성 본문

JAVA 입문 시작

22.12.02(불금) 자바안의 기본 람다 인터페이스 구현으로 예시문작성

강준석 2022. 12. 2. 18:01
728x90

존나 어려움

 

package 람다;

import java.util.function.Function;
import java.util.function.ToDoubleFunction;
import java.util.function.ToIntFunction;

public class Main10 {

	static Student[] list = { new Student("티모", 90, 80, "탑"), new Student("마스터이", 90, 50, "정글") // 만든 객체를 list에 저장
	};

	public static void main(String[] args) {

		System.out.print("수학 점수 평균 : ");
		printAvg(t -> t.getMath());
		// 위에 new Student()저장된 입력값이 Student클래스로 이동, Student클래스에서 Math값 다시 가져옴

		System.out.print("수학");
		printTot(t -> t.getMath());

		System.out.println("이름");
		printString(t -> t.getName());

	}

	
	
	static void printString(Function<Student, String> f) {
										    //String으로 변환해서 보낸다
		for (Student s : list) {
			System.out.print(f.apply(s) + " ");
		}
	}

	
	
	static void printTot(ToIntFunction<Student> f) {
		int sum = 0;
		for (Student s : list) {
			// 위에 객체를 저장한 list를 불러오기
			sum += f.applyAsInt(s);
		}
		System.out.println("합계 : " + sum);
	}
	
	

	static void printAvg(ToDoubleFunction<Student> f) {
		// 위에식과 같다 ToDoubleFunction<Student> f = t -> t.getMath();
		double sum = 0;
		for (Student s : list) {
			// 위에 객체를 저장한 list를 불러오기
			sum += f.applyAsDouble(s);
		}
		System.out.println(sum / list.length);

	}
}

결과

 

수학 점수 평균 : 65.0
수학합계 : 130
이름
티모 마스터이 

 

 

728x90
Comments