Trong bài này chúng ta cùng xem một số cách cộng chuỗi (string concat/ joiner) trong Java và tính năng mới StringJoiner trong Java 8. Sử dụng StringBuilder/ StringBuffer Trước Java 8, để có thể ghép các chuỗi với một dấu phân cách, thường chúng ta phải lặp qua các phần tử của một mảng […]
Lập trình đa luồng với CompletableFuture trong Java 8
Trong bài viết Lập trình đa luồng với Callable và Future trong Java, tôi đã giới thiệu với các bạn về đối tượng Future trong Java. Khi sử dụng phương thức get() của đối tượng Future, chương trình của chúng ta sẽ bị block cho đến khi tất cả các tác vụ hoàn thành. Từ phiên […]
Annotation trong Java 8
Trong bài này, tôi sẽ giới thiệu với các bạn một số tính năng mới hỗ trợ cho Annotation trong Java 8 là Repeating annotation, Type Annotation. Nếu bạn chưa biết về Annotation, hãy xem bài viết Hướng dẫn sử dụng Java Annotation trước khi tiếp tục xem nội dung tiếp theo của bài viết. Repeating annotation Annotations […]
Date Time trong Java 8
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() […]