- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是一个关于当我需要在列表中查找对象实例时如何实现 equals 方法的问题,该实例的值是我在其成员中拥有的实例之一。
我有一个实现了 equals 的对象:
class User {
chuỗi id riêng tư;
public User(id) {
id này = id;
}
public boolean equals(Object obj) {
if (!(obj instanceof User)) {
trả về false;
}
return ((User)obj).id.equals(this.id);
}
}
现在如果我想在列表中找到一些东西,我会做这样的事情:
public function userExists(String id) {
List users = getAllUsers();
return users.contains(new User(id));
}
但这也许是更好的实现方式?
class User {
chuỗi id riêng tư;
public boolean equals(Object obj) {
if (!(obj instanceof User)) {
trả về false;
}
if (obj instanceof String) {
return ((String)obj).equals(this.id);
}
return ((User)obj).id.equals(this.id);
}
}
用这个代替:
public function userExists(String id) {
List users = getAllUsers();
return users.contains(id);
}
câu trả lời hay nhất
用第二种方法是危险的,因为它破坏了等式的对称属性。
Java 期望 bằng()
的实现是自反的、对称的和可传递的。第二种实现打破了对称性:如果将 Người sử dụng
与表示其 ID 的 Sợi dây
进行比较,您将得到 ĐÚNG VẬY
,但如果将字符串与用户,你会得到一个SAI
。
关于java - 首选 Equals() 方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017689/
Có ai biết cách làm cho DIV hoạt động theo cách nó luôn cố gắng chiếm không gian tối đa (bất kể nội dung) không? Ví dụ: nếu tôi có DIV có chiều cao tối đa là 600px và chiều cao tối thiểu là 200px, tôi làm cách nào
Xem xét hai bảng bảng A và bảng B Bảng A |id|driver_id|vehicle_id|is_allowed|license_number|driver_name| Bảng B |id|driver_id|vehic
Cách triển khai thực tiễn tốt nhất của trình loại bỏ/thay thế ngôn từ tục tĩu tùy chỉnh cho ứng dụng ASP.NET là gì? Nếu đây là giải pháp bảng dữ liệu, có tài nguyên miễn phí nào để lấy dữ liệu không? (Tương tự như tìm một public (publi
Có rất nhiều plugin chú giải công cụ jquery. Tôi nên sử dụng cái nào? Tại sao? Câu trả lời hay nhất Chúng tôi đã sử dụng qTip trong một trong các dự án của mình vì nó đáp ứng tất cả các yêu cầu của chúng tôi, được phát triển và bảo trì tốt, đi kèm với tài liệu xuất sắc và các mẫu vốn đã đẹp, đồng thời cũng phù hợp với tôi
Tôi đã tìm kiếm trên Internet và không thể tìm thấy bất kỳ thông tin liên quan nào. Chương trình của tôi cần viết một số mã PowerShell vào tệp cấu hình PowerShell. Nếu không có tệp cấu hình, chương trình của tôi sẽ tạo một tệp. Câu hỏi đặt ra là nên sử dụng mã hóa nào để tạo Power
Loại chỉ mục vòng lặp ưa thích khi sử dụng foreach trong D, int, uint là gì? Hay nó chỉ được triển khai tự động bằng cách bỏ qua loại này? Câu trả lời hay nhất Nói chung, chỉ mục phải là size_t. Tương tự như chiều dài. Nếu bạn cố gắng sử dụng int hoặc ui
Câu hỏi này đã có câu trả lời ở đây: Lặp lại từng hàng data.frame số lần được chỉ định trong một cột (9 câu trả lời) Đã đóng 2 năm trước
Đã kết thúc. Câu hỏi này đang tìm kiếm đề xuất về sách, công cụ, thư viện phần mềm, v.v. Nó không đáp ứng các nguyên tắc của Stack Overflow. Câu trả lời không được chấp nhận vào thời điểm này. Chúng tôi không cho phép các câu hỏi tìm kiếm đề xuất về sách, công cụ, thư viện phần mềm, v.v. Bạn có thể chỉnh sửa câu hỏi của mình để
đóng cửa. Câu hỏi này cần được hỏi tập trung hơn. Câu trả lời không được chấp nhận vào thời điểm này. Bạn muốn cải thiện vấn đề này? Đã cập nhật câu hỏi để chỉ tập trung vào một vấn đề chỉnh sửa bài đăng này. Đã đóng 8 năm trước. Cải thiện truy vấn này
Tôi có một chuỗi trông như thế này: "Phần tử 1 | Phần tử 2| Phần tử 3: phần tử 4" Tôi muốn xâu chuỗi con phần của chuỗi nguồn sau dấu hai chấm (đến cuối chuỗi nguồn), nhưng nếu không có dấu hai chấm, đó
Tôi chấp nhận mọi ngôn ngữ thông dịch Perl, Python, Bash, v.v. Nhưng tôi thích Perl hơn vì đó là điều tôi muốn học. Tôi có một danh sách các dấu thời gian, ví dụ: 17:31:16 17:31:16 17:31:18 17:31:29
Tôi muốn chạy một chương trình ở chế độ nền. C# ưa thích Tôi muốn đặt biểu tượng vào khay. Đồng bộ thư mục vào những thời điểm nhất định (Tôi biết cách đồng bộ thư mục). Làm cách nào tôi có thể chạy nó ở chế độ nền và bắt đầu đồng bộ hóa (giả sử là 2 giờ sáng)? Câu trả lời hay nhất bạn cần cân nhắc khi sử dụng windows sche
Tôi có trình xử lý sự kiện onChange với cấu trúc sau: (e) => (value => this.setState(prevState => ({ form: {
Tôi muốn ghi lại các thao tác xóa trong windows 7. Nếu người dùng xóa một tệp khỏi máy tính của họ, tôi cần lưu trữ bản ghi về thời điểm tệp bị xóa và tệp nào đã bị xóa. Các thao tác tập tin chung, không cụ thể cho các thư mục hoặc phần mềm cụ thể. Vì vậy, giả sử người dùng bắt đầu từ d:\testFol
Có thư viện hoặc hàm nguồn mở nào có thể tính gần đúng diện tích dưới một dòng được mô tả bởi một số giá trị được lấy theo các khoảng thời gian không đều không? Action Script được ưu tiên hơn, nhưng Java cũng sẽ hoạt động tốt. Câu trả lời hay nhất Bạn có thể sử dụng thư viện toán as3mathlib. cái này
Đối với ứng dụng web của tôi, tôi muốn hình ảnh được cung cấp cho người dùng phải phản hồi. Ngoài ra, tôi muốn chỉ định các thuộc tính chiều rộng và chiều cao trong thẻ hình ảnh để việc chỉnh lại trình duyệt không xảy ra trên các kết nối di động chậm. Có thể sử dụng H nguyên chất
Trong khi đưa logo công ty lên, hôm nay tôi thấy một điều gì đó mới mẻ. Họ đặt chiều cao và chiều rộng với tràn:ẩn trên thẻ h1 và đặt lề âm cho thẻ a bên trong thẻ h1 để ngăn văn bản hiển thị. Mã là như thế này
Tôi đã phát triển một ứng dụng lập chỉ mục và tìm kiếm bằng thư viện Lucene. Nhưng thư viện này có một số hạn chế về xếp hạng tùy chỉnh trong ngữ cảnh của tôi, bên cạnh hiệu suất của nó, tôi cần khả năng mở rộng và truy cập vào các tần số thuật ngữ khác nhau, v.v. Có sẵn thư viện toàn văn nguồn mở mạnh mẽ nào không? câu trả lời hay nhất
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Cập nhật câu hỏi để việc chỉnh sửa bài đăng này có thể trả lời nó bằng các sự kiện và trích dẫn. Đã đóng 8 năm trước. Cải thiện
Đây là câu hỏi về cách triển khai phương thức bằng khi tôi cần tìm một phiên bản đối tượng trong danh sách có giá trị là một trong các phiên bản tôi có trong các thành viên của danh sách đó. Tôi có một đối tượng thực hiện bằng: class User {pri
Tôi là một lập trình viên xuất sắc, rất giỏi!