[K-디지털 트레이닝] 학습정리 람다식(2024-10-24)

smoo·2024년 10월 24일

JAVA_STUDY

목록 보기
24/25
post-thumbnail

1. 리액트 emp/list 에서 사원추가 버튼을 추가후 사원이 insert 되도록 짜시오.


2. 아래를 간단한 예를 들어 설명하시오.

Function<T,R>
입출력 출력이 있음(수학적으로는 함수)
java.util.function 패키지로 묶여 있음!

R apply(T t)

class FunctionDemo {
   public static void main(String[] args) {
      Function<String, Integer> f = s -> s.length();
      System.out.println(f.apply("Robot"));
      System.out.println(f.apply("System"));
   }
}

Consumer<T>
무엇인지를 받아들이기만 함

void accept(T t)

class ConsumerDemo {
   public static void main(String[] args) {
      Consumer<String> c = s -> System.out.println(s);
      c.accept("Pineapple");       // 출력이라는 결과를 보임
      c.accept("Strawberry");
   }
}

Supplier<T>
메소드 호출 시 무엇인가를 제공함

T get()

public static List<Integer> makeIntList(Supplier<Integer> s, int n) {
   List<Integer> list = new ArrayList<>();
   for(int i = 0; i < n; i++)
      list.add(s.get());   // 난수를 생성해 담는다.
   return list;
}

public static void main(String[] args) {
   Supplier<Integer> spr = () -> {
      Random rand = new Random();
      return rand.nextInt(50);
   };
   
   List<Integer> list = makeIntList(spr, 5);
   System.out.println(list);

   list = makeIntList(spr, 10);
   System.out.println(list);
}

Predicate<T>
전달 인자를 근거로 참 또는 거짓을 반환

boolean test(T t)

public static int sum(Predicate<Integer> p, List<Integer> lst) {
   int s = 0;
   for(int n : lst) {
      if(p.test(n))
         s += n;
   }
   return s;
}

public static void main(String[] args) {
   List<Integer> list = Arrays.asList(1, 5, 7, 9, 11, 12);
   int s;

   s = sum(n -> n%2 == 0, list);
   System.out.println("짝수 합: " + s);

   s = sum(n -> n%2 != 0, list);
   System.out.println("홀수 합: " + s);
}
profile
코딩 스터디 정리

0개의 댓글