JAVA 8 Sort Array And GroupBy
This post hasn't been updated for 7 years
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}
All Rights Reserved