Tôi đang viết một số Trình so sánh tùy chỉnh và tôi muốn chúng đẩy các mục rỗng vào cuối danh sách, bất kể tôi sắp xếp tăng dần hay giảm dần. Chiến lược hay mô hình tốt để tiếp cận điều này là gì?Cách tổng quát tốt đẹp để sắp xếp giá trị rỗng vào đáy, bất kể?
sửa soạn trước:
- Đơn giản chỉ cần viết tăng dần và giảm dần bộ so sánh riêng biệt, chia sẻ đang nếu có thể
- Đại biểu rỗng xử lý đến lớp khác , hoặc bằng cách ném một NPE hoặc bằng cách gọi nó một cách rõ ràng
- Bao gồm một cờ tăng dần và đặt logic điều kiện trong đó để điều hướng xung quanh các dấu trống
- Bao gồm các trình so sánh thông thường trong một lớp học không xử lý
Bất kỳ chiến lược nào khác? Tôi muốn nghe về bất kỳ trải nghiệm nào với các cách tiếp cận khác nhau và mọi cạm bẫy cho các chiến lược khác nhau.
Tôi đồng ý với tất cả câu trả lời của bạn ngoại trừ việc phủ nhận kết quả so sánh; Tôi sẽ khá không vui nếu tôi phát hiện ra rằng một Comparator đã thực hiện so sánh số nguyên bằng cách sử dụng phép trừ, vì phương pháp đó có rất nhiều cạm bẫy. – jprete
@jprete: Tôi nghĩ bạn đã hiểu lầm tôi. Tôi sẽ chỉnh sửa. –
Tôi chấp nhận câu trả lời này vì tham chiếu đến lớp Thứ tự của Bộ sưu tập của Google - mã đã được chứng minh hiện tại là giải pháp tốt nhất. Cũng cho cảnh báo về Integer.MIN_VALUE. Nhưng tôi đánh giá cao mã @ dfa, bên dưới và muốn tôi có thể chấp nhận cả hai câu trả lời. –