Một số hàm giúp mapping data đơn giản với Groovy
Java
78
groovy
5
White

Tất Huân viết ngày 17/07/2018

Một số hàm giúp mapping data đơn giản với Groovy

Ví dụ với list data như sau:

def student1 = [name: "Huan", age: 22, gender: "male"]
def student2 = [name: "Hai", age: 22, gender: "male"]
def student3 = [name: "Ha", age: 21, gender: "female"]
def student4 = [name: "Ly", age: 25, gender: "female"]

def students = [student1, student2, student3, student4]

Chuyển đổi từng phần tử trong list thành list giá trị khác:

Ví dụ ở đây mình muốn chuyển từ list students ra list tên:

def results = students.collect {
    (it.get("gender").equals("male")) ? "Mr. ${it.get("name")}" : "Ms. ${it.get("name")}"
}
println results

Output:

[Mr. Huan, Mr. Hai, Ms. Ha, Ms. Ly]

Group by:

Ví dụ ở đây mình muốn group những sinh viên cùng tuổi lại với nhau:

def results = students.groupBy { student -> student.get("age") }
println results 

Output:

[
22:[
    [name:Huan, age:22, gender: male],
    [name:Hai, age:22, gender: male]
], 
21:[
    [name:Ha, age:21, gender: female]
], 
25:[
    [name:Ly, age:25, gender: female]
]
]

Tìm kiếm theo điều kiện:

def results = students.findAll { it.age == 22 }
println results

Output:

[
    [name:Huan, age:22, gender: male], 
    [name:Hai, age:22, gender: male]
]

Sum:

def result = students.sum { it.age }
println result

Output:

90

Split

Hàm spit sẽ giúp bạn chia list ban đầu thành 2 list mới, 1 list thoả mãn điều kiện và 1 list không thoả mãn điều kiện

def results = students.split { it.age >= 22 }
println results

Output:

[
[[name:Huan, age:22, gender:male], [name:Hai, age:22, gender:male], [name:Ly, age:25, gender:female]],
[[name:Ha, age:21, gender:female]]
]

Jack 180717

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Tất Huân

4 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
5 0
Sử dụng Jacksondatabind mapping Object Json và ứng dụng load file config 1. Mapping Object Json Jacksondatabind Maven: com.fasterxml.jackson.c...
Tất Huân viết 1 tháng trước
5 0
White
3 2
Giảm "quay tay" trên Intellij Hôm nay mình xin chia sẻ với anh em cách định nghĩa các template tương tự như thằng psvm mà chúng ta vẫn dùng hằng n...
Tất Huân viết hơn 1 năm trước
3 2
White
3 0
Vấn đề có thể gặp khi thao tác với String trong Java và Groovy Vấn đề 1: Toán tử "==" trong Groovy khác với Java Cùng 1 ví dụ như sau: String y...
Tất Huân viết 1 tháng trước
3 0
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết gần 3 năm trước
0 0
White
7 0
Gradle là gì? Sao lại xử dụng Gradle trong Android? Sử dụng Gradle như thế nào? Đó là một trong rất nhiều câu hỏi mà các Android developer mới làm ...
khoatd92 viết 1 năm trước
7 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!