12/08/2018, 15:59
JAVA 8 Sort Array And GroupBy
1. SORT ARRAY JAVA 8 Đầu tiên, ta tạo Object là student có các thông tin sau : name, age, date. package entity; public class Student { private String name; private int age; private int date; public Student(String name, int age, int date) { super(); this.name = name; this.age = ...
1. SORT ARRAY JAVA 8
- Đầu tiên, ta tạo Object là student có các thông tin sau : name, age, date.
package entity; public class Student { private String name; private int age; private int date; public Student(String name, int age, int date) { super(); this.name = name; this.age = age; this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getDate() { return date; } public void setDate(int date) { this.date = date; } }
- Sau đó thì tiến hành khởi tạo dữ liệu cho các Object
// khoi tao danh sach student private static List<Student> initListStudent() { // khoi tao danh sach studen List<Student> listStudent = new ArrayList<>(); // khoi tao student listStudent.add(new Student("CHieu", 26, 1992)); listStudent.add(new Student("Hieu", 25, 1993)); listStudent.add(new Student("ATam", 30, 1989)); listStudent.add(new Student("BTam", 27, 1991)); listStudent.add(new Student("Thanh", 24, 1994)); return listStudent; }
- Tạo hàm main và tiến hành sort theo họ tên các Object
// main de sap xep mang public static void main(String[] args) { List<Student> listStudent = initListStudent(); // Mang truoc khi duoc sap xep for (Student student : listStudent) { System.out.println(student.getName() + "-" + student.getAge() + "-" + student.getDate()); } System.out.println("=================="); // Tien hanh sap xep theo ho ten listStudent.sort((Student student1, Student student2) -> student1.getName().compareTo(student2.getName())); //DANH SACH SAU KHI SAP XEP for (Student student : listStudent) { System.out.println(student.getName() + "-" + student.getAge() + "-" + student.getDate()); } }
- Và đây là kết quả :
CHieu-26-1992 Hieu-25-1993 ATam-30-1989 BTam-27-1991 Thanh-24-1994 ================== ATam-30-1989 BTam-27-1991 CHieu-26-1992 Hieu-25-1993 Thanh-24-1994
- Ta có thể tiền hành sort theo tuổi theo tăng dần như sau :
// Tien hanh sap xep theo tuoi listStudent.sort((Student student1, Student student2) -> student1.getAge() - student2.getAge());
- Và đây là kết quả :
CHieu-26-1992 Hieu-25-1993 ATam-30-1989 BTam-27-1991 Thanh-24-1994 ================== Thanh-24-1994 Hieu-25-1993 CHieu-26-1992 BTam-27-1991 ATam-30-1989
2. GROUPBY JAVA 8
- Dùng groupby để nhóm các phẩn tử giống nhau và đếm sự xuất hiện của nó
- List String .Khởi tạo list String
List<String> listString = Arrays.asList("Cam", "Quyt", "Buoi", "Nho", "Nhan", "Cam", "Nhan", "Quyt");
.Sau đó tiền hành sort và đếm
Map<String, Long> map = listString.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
.Kết Quả :
{Nhan=2, Buoi=1, Nho=1, Quyt=2, Cam=2}
-Với Object : .Khởi tạo 1 object
List<Student> listStudent = Arrays.asList( new Student("Son", 41, 1992), new Student("Tam", 12, 1993), new Student("Hieu", 51, 1993), new Student("An", 61, 1993), new Student("Son", 12, 1993), new Student("Son", 89, 1993), new Student("Hieu", 32, 1993), new Student("Dao", 12, 1993));
.Tiến hành sort
Map<String, Long> map1 = listStudent.stream() .collect(Collectors.groupingBy(Student :: getName, Collectors.counting()));
.Kết Quả :
{Tam=1, Dao=1, Hieu=2, Son=3, An=1}