- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang cố gắng triển khai một trình xử lý Bộ so sánh
Và Có thể so sánh
Hệ thống phân cấp của giao diện. Một số điều tôi chưa rõ:
Chính xác thì mã này có ý nghĩa gì nếu tôi thêm bộ so sánh vào chuỗi bộ so sánh
chain.addComparator(newsortByTitle());
Tôi biết SortByTitle()
Đối số phải là một bộ so sánh, nhưng tôi không hiểu cách bạn triển khai hàm như vậy? Bộ so sánh yêu cầu bạn thực hiện so sánh(obj1, obj2)
hàm nhận hai đối số và so sánh một đối số với đối số kia, làm thế nào để bạn nhận được một lệnh gọi (trông giống hàm tạo) từ nó mà không có đối số?
Giả sử tôi thực hiện một chức năng gọi là Database
Một lớp lưu trữ một số mục trong một tệp có tên mục
của ArrayList
ở giữa. biến mục
Bản thân nó là một biến riêng tư. Bây giờ trong chương trình chính, thực hiện lệnh gọi sau:
Collections.sort(library.item, chain);
Cách truy cập trực tiếp vào đối tượng thư viện của mục
Ví dụ? Thông số cơ sở dữ liệu mục
Cần phải riêng tư, điều này có hiệu quả không?
Tôi sẽ biết ơn sự giúp đỡ nào.
câu trả lời hay nhất
Bộ so sánh
Bản thân nó là một giao diện. khi bạn nói chain.addComparator(newsortByTitle());
, bạn đang chuyển một phiên bản triển khai Bộ so sánh để sắp xếp các đối tượng theo tiêu đề. sắp xếpByTitle
lớp sẽ thực hiện trong trường hợp này Bộ so sánh
và sẽ cung cấp so sánh(obj1, obj2)
phương pháp. Chuỗi của bạn có thể gọi nó trong trường hợp bạn truy cập. Thông thường, thay vì chuyển một phiên bản mới mỗi lần, tất cả Bộ so sánh
Đối tượng triển khai được khai báo là thành viên tĩnh công khai cuối cùng của chính đối tượng đó.Ví dụ:
Công cụ so sánh cuối cùng tĩnh công khai TITLE_COMPARATOR = Bộ so sánh mới() {
@Ghi đè
so sánh int công khai(Object lhs, Object rhs) {
// logic so sánh
}
};
Sau đó, bạn có thể chỉ cần chuyển chúng vào chuỗi của mình theo cách này:
chain.addComparator(YourObject.TITLE_COMPARATOR);
Điều này có thêm lợi ích là cho phép sử dụng bộ so sánh (không trạng thái) ở nơi khác mà không cần tạo một phiên bản mới mỗi lần.
类似于:
Danh sách công khai getItem() {
trả lại hàng;
}
Và
public void setItem(Mục danh sách) {
this.item = mục;
}
trong lớp thư viện.
Về vấn đề java - Comparator/Comparable/ComparatorChain, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11173477/
Tôi thường có loại Comparator và tôi cần loại Comparable và ngược lại. Có các API JDK có thể tái sử dụng và chuyển đổi lẫn nhau không? Một cái gì đó như: public static Comp
Làm cách nào tôi có thể viết Bộ so sánh này type = (i1, i2) -> Boolean.compare(i2.isOpen(), i1.isOpen()); như thế này (mã không hoạt động): Compa
Xin hãy giúp đỡ cô ấy. Tôi gặp lỗi Collections.sort(var4, new Comparator() { public int so sánh(TreeMap var1, TreeMa
Đang học Kotlin, tôi đang cố gắng hiểu giao diện Comparator của Java làm gì - chủ yếu là hàm so sánh (), để tôi có thể tận dụng nó. Tôi đã thử đọc tài liệu về so sánh()
Tôi có chương trình sau Danh sách số = Arrays.asList("10", "68", "97", "9", "21", "12"); Collections.sort(numbers, (
Tôi muốn sắp xếp danh sách như bên dưới dựa trên thuộc tính của lớp lồng nhau. Kiểm tra lớp { riêng tư NestedClass NestedClass riêng tư AnotherNes;
Tôi tò mò muốn biết thuật toán "Beyond Compare" hoạt động như thế nào? Tôi đoán họ sử dụng thuật toán tiêu chuẩn (nổi tiếng?) Để thực hiện so sánh "ký tự với ký tự". Bạn có biết tên của thuật toán này không? Cảm ơn câu trả lời hay nhất Beyond Compa
Câu hỏi này đã có câu trả lời: Phương thức sắp xếp () của lớp Bộ sưu tập gọi phương thức so sánh (1) của Comparable như thế nào?
Câu hỏi này đã có câu trả lời: Đã đóng cửa 12 năm trước. Có thể trùng lặp: sự khác biệt giữa so sánh() và so sánhTo() Java: Điều gì tôi
Tôi đã được yêu cầu triển khai Comparable hoặc Compartor cho một lớp nhất định, hãy gọi nó là V. Giả sử tôi có Bộ sưu tập hoặc Bộ V (chưa chắc chắn nhưng tôi không nghĩ nó quan trọng). V có cách đánh giá mình "đúng"
Tôi đang xem mã nguồn của phương thức Comparator.comparing được triển khai trong Java8, đây là mã So sánh tĩnh công khai (Hàm
Giả sử tôi có một lớp ClassA có thuộc tính là ClassB: public ClassA { Private String attr; private ClassB classB } p
Tôi có một bộ so sánh tùy chỉnh với logic so sánh sau: List l = new ArrayList(); l.add("tendercoupon");
Tôi đang cố gắng triển khai hệ thống phân cấp xử lý các giao diện So sánh và So sánh. Một số điều tôi chưa rõ: Mã này chính xác có ý nghĩa gì nếu tôi thêm bộ so sánh vào chuỗi bộ so sánh.a
Sau câu hỏi này về việc sắp xếp danh sách theo danh sách khác, tôi đã thử làm điều tương tự - nhưng vì lý do nào đó nó không hiệu quả với tôi. Tôi đang thiếu gì? Danh sách nums = Arrays.asList(5
Giả sử tôi có một mô hình miền như thế này: class Bài giảng { Khóa học ... // getters } lớp Khóa học { Giáo viên
Trong một biểu thức > chữ ký như thế này public static > foo(T x) { ... } mô tả của T đệ quy phụ thuộc vào Có thể so sánh nếu T mở rộng Có thể so sánh và Có thể so sánh mở rộng.
Lý do tại sao tất cả các bộ so sánh "số" (chẳng hạn như Comparer.Default, Comparer.Default, v.v.) trả về -1 là gì? , 0 hoặc 1, nhưng Comparer.Default và Compar
(Nếu đây là một bản sao, vui lòng chỉ ra câu trả lời đúng! Tôi đã tìm kiếm và đọc một số (>5) câu hỏi liên quan nhưng dường như không có câu hỏi nào đúng. Tôi cũng đã xem Câu hỏi thường gặp về Generics và các nguồn khác...) Khi một lớp sưu tập chấp nhận một bộ so sánh, nó phải có Compara
SBCL 1.3.1 Tóm lại, a là một danh sách, '(7), b pass setq sbcl Đây là SBCL 1.3.1.debian, một triển khai của ANSI Common
Tôi là một lập trình viên xuất sắc, rất giỏi!