Chương 4: Lambda và reference method

Câu 1: Chọn cách khai báo biểu thức lambda đúng (chọn 2 đáp án)
A. () ->
B. () -> “”
C. x,y -> x*y
D. (Foo f) -> return -1
E. (Foo f) -> {return; }
F. Foo f -> “java”
G. (Foo f1, f2) -> 0
Câu 2:  Chọn functional interface phù hợp để điền vào các chỗ trống (chọn 3 đáp án)

A. Function<String>
B. Supplier<String>
C. BiConsumer<String, String>
D. BiFunction<String, String>
E. BinaryConsumer<String, String>
F. BinaryFunction<String, String>
G. UnaryOperator<String>
H. UnaryOperator<String, String>
Câu 3: Chọn đoạn code tương đương với đoạn code sau (chọn 1 đáp án)

A. Function<Integer> obj = a -> a*15;
B. Function<Integer, Integer> obj = a -> a*15;
C. BiFunction<Integer> obj = a -> a * 15;
D. Bi Function<Integer, Integer> obj = a -> a*15;
E. BinaryOperator<Integer> obj = a -> a*15;
F. BinaryOperator<Integer, Integer> obj = a -> a*15;
Câu 4: Interface có method trả về kiểu dữ liệu nguyên thủy là (chọn 3 đáp án)
A. BooleanSupplier
B. CharSupplier
C. ByteSupplier
D. IntSupplier
E. FloatSupplier
F. DoubleSupplier
Câu 5: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)

A. hello
B. bye
C. Dòng thứ 7 compile error
D. Dòng thứ 9 compile error
E. Dòng thứ 10 compile error
Câu 6: Chọn code tương đương với Class Foolmpl dưới đây (chọn 2 đáp án)

A. Foo f = d-> -1;
B. Foo f = d -> {-1};
C. Foo f = d -> {int d = -1; d};
D. Foo f = d -> {int d = -1; return d;};
E. Foo f = d-> {int i  = -1; return i};
F. Foo f = d -> {int i = -1; return i;};
Câu 7: compile và chạy chương trình sau kết quả là (Chọn 1 đáp án)

A. a
B. b
C. Dòng thứ 4 compile error
D. Dòng thứ 6 compile error
E. Dòng thứ 7 compile error

  • Ví dụ reference method. Reference method sẽ tự biết đối số để sử dụng

 

  • Khởi tạo Foo mà ko có kiểu <> thì sẽ bị  warning
  • Các kiểu dữ liệu cơ bản của functional Interface int, double, boolean
  • Các functional interface căn bản:

Function(T,R) R apply(T t)

BiFunction(T,U,R) R apply(T t, U u)

Consumer(T)  void accept(T t)

BiConsumer(T,U) void accept(T t, U u)

Predicate(T) Boolean test(T t)

BiPredicate(T, U) Boolean test(T t, U u)

Supplier(T) T get()

UnaryOperator(T) T apply(T t)

BinaryOperator(T) T apply(T t1, T t2)

  • intFunction có đầu vào và đầu ra đều là int. ToIntFunctiona có đầu vào bất kỳ đầu ra là int

Đáp án:

  1. B E
  2. B C G
  3. B
  4. A D F
  5. A
  6. A F
  7. C

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *