Tôi biết rằng trong Groovy, nếuGroovy: cách đơn giản nhất để phát hiện giá trị nhân bản, không liên tiếp trong một danh sách
list = [1,2,3,1]
khi
list.unique()
với lợi nhuận
[1,2,3]
Nhưng nếu tôi muốn phát hiện giá trị trùng lặp cho các mục trùng lặp, không liên tiếp trong một danh sách. Tôi có thể làm cái này như thế nào?
detect([1,2,3,1]) => true
detect([1,2,3,2]) => true
detect([1,1,2,3]) => false
detect([1,2,2,3,3]) => false
detect([1,2,3,4]) => false
Cảm ơn.
Edit: thêm hai trường hợp, những
detect([1,2,2,1]) => true
detect([1,2,1,1]) => true
đúng nghĩa là bất kỳ không liên tiếp, lặp lại xảy ra.
Rất tuyệt! Tôi chỉ muốn biết cách thực hiện '! Ref' có nghĩa là danh sách trống trong mã của bạn? –
Có chính xác. Tôi có thể thử tối ưu hóa việc triển khai metaClass nhiều hơn nếu nó có thể có nhiều rãnh hơn. – dmahapatro
oops, '[1,2,2,1] .detect()' và '[1,2,1,1] .detect()' trả về false, nhưng tôi nghĩ rằng nó phải đúng. Tôi nhớ hai trường hợp này khi tôi xác định câu hỏi. –