Tinjauan Java 8: API Fungsional, Streaming, dan Date-Time Baru
JAVA 8 adalah rilis fitur utama dari pengembangan bahasa pemrograman JAVA. Versi awalnya dirilis pada 18 Maret 2014. Dengan rilis Java 8, Java menyediakan dukungan untuk pemrograman fungsional, mesin JavaScript baru, API baru untuk manipulasi tanggal dan waktu, API streaming baru, dll.
Fitur Baru
Lambda expression − Menambahkan kemampuan pemrosesan fungsional ke Java.
Method references − Mereferensikan fungsi berdasarkan namanya daripada memanggilnya secara langsung. Menggunakan fungsi sebagai parameter.
Default method − Antarmuka untuk memiliki implementasi metode default.
New tools − Alat dan utilitas compiler baru ditambahkan seperti ‘jdeps’ untuk menentukan dependensi.
Stream API − API stream baru untuk memfasilitasi pemrosesan pipeline.
Date Time API − API tanggal dan waktu yang ditingkatkan.
Optional − Penekanan pada praktik terbaik untuk menangani nilai null dengan benar.
Nashorn, JavaScript Engine − Mesin berbasis Java untuk mengeksekusi kode JavaScript.
Pertimbangkan cuplikan kode berikut.
Live Demo
import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator; public class Java8Tester { public static void main(String args[]) { List<String> names1 = new ArrayList<String>(); names1.add("Mahesh "); names1.add("Suresh "); names1.add("Ramesh "); names1.add("Naresh "); names1.add("Kalpesh "); List<String> names2 = new ArrayList<String>(); names2.add("Mahesh "); names2.add("Suresh "); names2.add("Ramesh "); names2.add("Naresh "); names2.add("Kalpesh "); Java8Tester tester = new Java8Tester(); System.out.println("Sort using Java 7 syntax: "); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("Sort using Java 8 syntax: "); tester.sortUsingJava8(names2); System.out.println(names2); } //sort using java 7 private void sortUsingJava7(List<String> names) { Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); } //sort using java 8 private void sortUsingJava8(List<String> names) { Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } } Jalankan program untuk mendapatkan hasil berikut.
Sort using Java 7 syntax: [ Kalpesh Mahesh Naresh Ramesh Suresh ] Sort using Java 8 syntax: [ Kalpesh Mahesh Naresh Ramesh Suresh ]
Di sini metode sortUsingJava8() menggunakan fungsi sort dengan ekspresi lambda sebagai parameter untuk mendapatkan kriteria pengurutan.