Một lần nữa, không cần so sánh cho Arrays.binarySearch(Object[] a, Object key)
miễn là các loại đối tượng có thể so sánh được, nhưng với các biểu thức lambda thì cách này dễ dàng hơn.
Đơn giản chỉ cần thay thế so sánh với các tài liệu tham khảo phương pháp: String::compareTo
Ví dụ:
Arrays.binarySearch(someStringArray, "The String to find.", String::compareTo);
Bạn cũng có thể sử dụng
Arrays.binarySearch(someStringArray, "The String to find.", (a,b) -> a.compareTo(b));
nhưng ngay cả trước khi lambdas, luôn có lớp vô danh:
Arrays.binarySearch(
someStringArray,
"The String to find.",
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
Nguồn
2015-04-16 19:40:54
+1 để thực hiện Bộ so sánh –
'Bộ so sánh' là loại chung, vì vậy' ExampleComparator' có lẽ nên thực hiện 'Comparator' để tránh cảnh báo. –
theisenp
Để so sánh chuỗi, hãy nhớ đến chữ thường (hoặc chữ hoa) trước khi so sánh chúng nếu không bạn sẽ nhận được thứ tự này A-Za-z –