Trong bài các bài viết trước, tôi đã Giới thiệu về kiểu Date Time trong Java. Trong bài này, chúng ta sẽ tìm hiểu thêm một số tính năng mới của Date Time trong Java 8. Tại sao chúng ta cần API Date Time mới? Trước khi tìm hiểu một số API mới, chúng ta hãy […]
Sắp xếp trong Java 8
Trong bài giới thiệu TreeSet và giới thiệu lớp tiện ích Collections, Arrays trong Java, tôi đã giới thiệu với các bạn cách tạo bộ so sánh sử dụng Comparable, Comparator và cách sắp xếp các phần tử trong một Collection, Array. Trong bài này, chúng ta sẽ tổng hợp lại các cách sắp xếp trong Java […]
Lớp Collectors trong Java 8
Stream.collect() là một trong các phương thức đầu cuối (terminal operation) của Stream API trong Java 8. Nó cho phép thực hiện các thao tác có thể thay đổi trên các phần tử được lưu giữ trong Stream. Chẳng hạn như: chuyển các phần tử sang một số cấu trúc dữ liệu khác, áp dụng một số […]
Function trong Java 8
Giới thiệu Function<T, R> Java 8 cung cấp sẵn cho chúng ta rất nhiều Functional Interface và Function<T, R> là một trong số đó. Cũng giống như những functional interface khác, Function<T, R> có thể sử dụng cho lambda expression hoặc method reference cho một mục đích cụ thể nào đó. Function<T,R> chỉ có một […]
Supplier trong Java 8
Giới thiệu Supplier<T> Trong Java 8, Supplier<T> là một functional interface và do đó nó có thể được sử dụng với lambda expression hoặc method reference cho một mục đích cụ thể nào đó. Supplier<T> làm ngược lại với Consumer<T>, nó là một phương thức trừu tượng không tham số, và trả về một đối tượng bằng cách gọi phương thức get() […]
Consumer trong Java 8
Giới thiệu Consumer<T> Trong Java 8, Consumer<T> là một functional interface và do đó nó có thể được sử dụng với lambda expression hoặc method reference cho một mục đích cụ thể nào đó. Consumer<T> chấp nhận một tham số đầu vào, và method này không trả về gì cả. Mục tiêu chính của Interface Consumer là thực hiện một thao tác […]
Predicate trong Java 8
Giới thiệu Predicate<T> Trong Java 8, Predicate<T> là một functional interface và do đó nó có thể được sử dụng với lambda expression hoặc method reference cho một mục đích cụ thể nào đó. Predicate<T> sẽ trả về giá trị true/false của một tham số kiểu T mà bạn đưa vào có thỏa với điều kiện của Predicate […]
Optional trong Java 8
Trong Java 8, chúng ta có một lớp Optional<T> mới được giới thiệu trong gói java.util. Nó được sử dụng để kiểm tra xem một biến có giá trị tồn tại giá trị hay không. Ưu điểm chính của cấu trúc mới này là không có quá nhiều kiểm tra null và tránh lỗi NullPointerException (NPE) lúc […]